我试图创建一个时尚的窗口,图标在右上角,部分在窗口边界之外。因为这是不可能的(窗口之外的内容被裁剪了),我为此使用了一个Popup
控件。
<Popup Placement="Right" HorizontalOffset="-80" VerticalOffset="-40" IsOpen="True" AllowsTransparency="True"
PlacementTarget="{Binding RelativeSource={RelativeSource AncestorType=Grid}}">
<Image Source="pack://application:,,,/graphics/AdminIcon.png" Stretch="None" />
</Popup>
只要我不在窗户之间切换,它就能正常工作。因此,弹出看起来既不是Window
的适当子窗口,也不是它自己的完全独立的窗口;介于两者之间的东西。
我试着用两张图片来解释它:
Image1:窗口已加载并弹出,显示在右上角:
Image2: ALT + TAB:记事本以某种方式在弹出窗口和窗口之间注入自己
我该如何解决这个问题?
发布于 2016-05-01 12:37:26
您可以使用无边界、透明的窗口,而不是弹出窗口:
<Window ...
WindowStyle="None" AllowsTransparency="True" Background="{x:Null}"
MouseLeftButtonDown="Window_MouseLeftButtonDown">
<Grid>
<Grid Margin="0,20,0,0" Background="White">
... window content goes here
</Grid>
<Image
Source="/graphics/AdminIcon.png" Stretch="None"
HorizontalAlignment="Right" VerticalAlignment="Top" />
</Grid>
</Window>
使用此MouseLeftButtonDown
处理程序
private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DragMove();
}
也许某个地方有个关闭按钮。
https://stackoverflow.com/questions/36966518
复制相似问题