gpt4 book ai didi

c# - 如何在使用自定义窗口镶边时向 WPF 标题栏添加按钮?

转载 作者:太空狗 更新时间:2023-10-29 18:13:33 27 4
gpt4 key购买 nike

我正在尝试创建一个简单的按钮模板,其中按钮通常看起来像一条水平线,但是当鼠标悬停在按钮上时,按钮后面会显示一个“矩形”颜色填充。这是我的代码,但我似乎无法触发触发器。

<Window x:Class="TestStylingWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight="36" GlassFrameThickness="0 0 0 1" ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="36" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>

<Button Height="36" Width="36"
HorizontalAlignment="Center" VerticalAlignment="Center"
Grid.Row="0">
<Button.Template>
<ControlTemplate>
<Grid>
<Rectangle x:Name="PART_ButtonBackgroundRectangle" Fill="LightGray" Width="36" Height="36" Opacity="0" />
<Path x:Name="PART_ButtonPath" Data="M10,26 L26,26" Stroke="DarkGray" StrokeThickness="1.5" />
</Grid>
<ControlTemplate.Triggers>
<Trigger SourceName="PART_ButtonBackgroundRectangle" Property="IsMouseOver" Value="True">
<Setter TargetName="PART_ButtonBackgroundRectangle" Property="Opacity" Value="1" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
</Window>

有谁知道为什么我的触发器不起作用,或者有更好的方法吗?我是 WPF 的新手,想重构它(以便在许多按钮中使用它),但不确定如何重构。

更新: 好的,我猜这似乎是因为该按钮位于窗口的标题栏内。有解决这个问题的好方法吗?也许是一种为按钮设置点击/悬停优先级的方法?

最佳答案

你需要设置Hittest对你的按钮可见,比如:

shell:WindowChrome.IsHitTestVisibleInChrome="True"

关于c# - 如何在使用自定义窗口镶边时向 WPF 标题栏添加按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12431112/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com