[英]Buttons in window title bar
我正在尝试实现自定义窗口chrome。 我正在使用Miscrosoft.Windows.Shell命名空间。 当我在标题栏上放置按钮时,它对事件是透明的。 当我将鼠标悬停在默认按钮上时,它应该具有浅蓝色背景,但是没有这种效果。 不在标题栏内的另一个按钮正确触发事件。
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:shell="http://schemas.microsoft.com/winfx/2006/xaml/presentation/shell"
Title="MainWindow" Height="600" Width="800" Background="#2D2D30" Name="MyWindow"
WindowStartupLocation="CenterScreen" AllowsTransparency="True" WindowStyle="None">
<Window.Style>
<Style TargetType="Window">
<Setter Property="shell:WindowChrome.WindowChrome">
<Setter.Value>
<shell:WindowChrome CaptionHeight="25" GlassFrameThickness="0"
CornerRadius="0" ResizeBorderThickness="7"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="WindowState" Value="Maximized">
<Setter Property="shell:WindowChrome.WindowChrome">
<Setter.Value>
<shell:WindowChrome CaptionHeight="32" GlassFrameThickness="0"
CornerRadius="0" ResizeBorderThickness="7"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Window.Style>
<Grid>
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Margin" Value="7,0,7,7"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=MyWindow, Path=WindowState}" Value="Maximized">
<Setter Property="Margin" Value="7,7,7,7"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DockPanel LastChildFill="False" Grid.Row="0" Height="32">
<Button DockPanel.Dock="Right" Width="32" Height="32"/>
</DockPanel>
<Border Background="#1E1E1E" Grid.Row="1">
<Button Width="100" Height="100"/>
</Border>
</Grid>
你应该添加附加属性“shell:WindowChrome.IsHitTestVisibleInChrome”= true,这应该修复你的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.