我在 WindowStyle=None 和 ResizeMode=NoResize 的 WPF-windows 上苦苦挣扎。在窗口内容上使用 DropShadow 效果有什么好的选择吗?我在 Shell 集成库中尝试过 WindowChrome,但是当 ResizeMode=NoResize 时它没有显示任何“Chrome”。
如果有可能以某种方式在我的窗口边框之外绘制一个 wpf-drop-shadow,它可能是一个解决方案。如果我在窗口内绘制阴影,我会得到与标准不同的行为,例如将鼠标光标移动到阴影上。执行此操作时,我的窗口中不应有命中测试,单击此区域应激活后面的窗口等。
Zune 似乎正在绘制自己的阴影,因为它看起来与标准的 Chrome 阴影不完全相同。但它的行为就像一个正常的阴影,它不捕获鼠标事件。我想知道他们是怎么做到的。
Spotify 也有另一种影子,它也没有捕获鼠标事件。
我猜这些应用程序完全绘制了自己的 WindowChrome,但是如何呢?这在 WPF 中是否以某种方式支持?
<Window x:Class="ShellIntegrationTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:shell="clr-namespace:Microsoft.Windows.Shell;assembly=Microsoft.Windows.Shell"
Title="MainWindow" Height="512" Width="384" WindowStyle="None" ResizeMode="NoResize">
<shell:WindowChrome.WindowChrome>
<shell:WindowChrome ResizeBorderThickness="5" GlassFrameThickness="-1" CornerRadius="0" CaptionHeight="25" />
</shell:WindowChrome.WindowChrome>
</Window>