我试图创建一个时尚的窗口,图标在右上角,部分在窗口边界之外。因为这是不可能的(窗口之外的内容被裁剪了),我为此使用了一个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
复制相似问题