gpt4 book ai didi

WPF在资源字典中引用样式并使用触发器

转载 作者:行者123 更新时间:2023-12-03 04:06:17 30 4
gpt4 key购买 nike

我在资源字典中定义了一个Style,适用于所有ComboBox 控件。在 ComboBox 控件中,我引用如下样式:

Style="{DynamicResource MyComboBoxStyle}"

这工作正常。

我希望能够向某些 ComboBox 控件添加一些触发器。

使用作为动态资源引用的Style同时仍然能够将Trigger添加到某些ComboBox的好方法是什么> 控制?

最佳答案

<小时/>

更新:重新阅读问题后,我意识到这并不是OP所问的问题。我可以删除它,但也许它对偶然发现这个问题的人有用。

<小时/>

下面是一个示例,其中包含定义模板和触发器的 xaml 资源字典,以及引用该资源并应用样式的窗口。

它可能会帮助人们研究使用模板和触发器:

我的资源名为“Style1.xaml”

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTemplate x:Key="TonyTemplate" TargetType="Button">
<Border Name="Border"
BorderBrush="Orange"
BorderThickness="3"
CornerRadius="2"
Background="Ivory"
TextBlock.Foreground="Black">
<Grid>
<ContentPresenter RecognizesAccessKey="True"
Margin="{TemplateBinding Padding}"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Background" Value="Yellow" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Border" Property="Background" Value="Chartreuse" />
<Setter TargetName="Border" Property="BorderBrush" Value="DarkKhaki" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>

我的主窗口代码 xaml:

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Style1.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Button Width="100" Height="50"
Template="{StaticResource TonyTemplate}"
Content="Click me"/>
</Grid>
</Window>

关于WPF在资源字典中引用样式并使用触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2668655/

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