我正在尝试在右上角创建一个带有图标的时尚窗口,该窗口部分位于窗口边界之外。由于这不是直接可能的(落在窗外的内容被剪裁),我正在使用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>
只要我不在窗口之间切换,它就可以正常工作。因此,看起来Popup既不是Window
的正确子项,也不是它自己的完全独立的窗口;介于两者之间。
我会尝试用两张图片来解释它:
Image1:窗口已加载,弹出窗口显示在右上角:
Image2:ALT + TAB:记事本以某种方式在Popup和Window之间注入
如何解决这个问题?
答案 0 :(得分:1)
您可以使用无边框透明窗口代替Popup:
<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();
}
也许是某处的关闭按钮。