如何基于wpf中的按钮为每个标签设置一个触发器?(代码片段)

author author     2022-12-27     649

关键词:

我想在每次与它相关的文本框聚焦时在Label上引发一个触发器。我做到了这一点,但我有很多形式的标签。在资源方面有什么办法吗,我将不胜感激任何帮助和感谢。我想出使用Tag将文本框名称传递给触发器,但我不知道该怎么做!

<Label Grid.Column="0"
       Grid.Row="0"
       Content="StaticResource CIN"
       Tag="">
       <Label.Style>
            <Style TargetType="Label">
                 <Style.Triggers>
                      <DataTrigger Binding="Binding ElementName=TxCIN, Path=IsFocused" Value="true">
                            <Setter Property="FontWeight" Value="SemiBold"/>
                      </DataTrigger>
                 </Style.Triggers>
            </Style>
       </Label.Style>
</Label>
<TextBox Grid.Column="1" 
         Grid.Row="0" 
         Name="TxCIN"/>
答案

我为你创建了一个样本:

<Window.Resources>
    <Style x:Key="LabelStyle" TargetType="x:Type Label">
        <Style.Triggers>
            <DataTrigger Binding="Binding RelativeSource=RelativeSource AncestorType=x:Type StackPanel, Path=Children[1].IsFocused" Value="true">
                <Setter Property="Background" Value="Red"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<Grid x:Name="MainGrid">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <StackPanel Orientation="Horizontal" Grid.Row="0">
        <Label Content="First Name:" Style="StaticResource LabelStyle"/>
        <TextBox Width="150"/>
    </StackPanel>
    <StackPanel Orientation="Horizontal" Grid.Row="1">
        <Label Content="Last Name:" Style="StaticResource LabelStyle"/>
        <TextBox Width="150"/>
    </StackPanel>
    <StackPanel Orientation="Horizontal" Grid.Row="2">
        <Label Content="Address:" Style="StaticResource LabelStyle"/>
        <TextBox Width="150"/>
    </StackPanel>
    <StackPanel Orientation="Horizontal" Grid.Row="3">
        <Label Content="Zip Code:" Style="StaticResource LabelStyle"/>
        <TextBox Width="150"/>
    </StackPanel>
</Grid>

如果您看到,则会将共同样式应用于所有标签。我的祖先是StackPanel,TextBox是第二个兄弟,因此Path = Children [1] .IsFocused。请根据您的xaml更改AncestorType和Children的索引。

WPF - 如何使用模板创建图像按钮

...)。我相信正确的方法是从Button派生并使用Template并设置触发器来更改图像。我有3个依赖属性,每个图像一个。图像将是.png并具 查看详情

如何基于二维数组填充 WPF 网格

】如何基于二维数组填充WPF网格【英文标题】:HowtopopulateaWPFgridbasedona2-dimensionalarray【发布时间】:2010-09-2113:35:29【问题描述】:我有一个二维对象数组,我基本上想将每个对象数据绑定到WPF网格中的一个单元格。目前我有这个... 查看详情

如何将 WPF 按钮绑定到 ViewModelBase 中的命令?

】如何将WPF按钮绑定到ViewModelBase中的命令?【英文标题】:HowtobindWPFbuttontoacommandinViewModelBase?【发布时间】:2012-09-0712:37:07【问题描述】:我有一个包含各种属性的视图AttributeView。还有一个按钮,当按下时,它应该为属性设置... 查看详情

在每个新字符上触发 WPF TextBox 绑定?

...chnewcharacter?【发布时间】:2012-05-2401:52:27【问题描述】:如何在TextBox中输入新字符后立即更新数据绑定?我正在学习WPF中的绑定,现在我陷入了一个(希望如此)简单的问题。我有一个简单的FileLister类,您可以在其中设置Path属... 查看详情

基于对象类型的 WPF 触发器

】基于对象类型的WPF触发器【英文标题】:WPFTriggerbasedonObjectType【发布时间】:2010-12-1118:15:47【问题描述】:有没有办法比较触发器的对象类型?<DataTriggerBinding="BindingSelectedItem"Value="SelectedItem\'sType"></DataTrigger>背景:我... 查看详情

当 WPF 中的绑定为空时,如何避免 xaml 警告?

...ImageBrush设置器值的警告。我希望我可以使用转换器或空触发器来避免 查看详情

WPF 样式:如何更改触发器中的 GradientStop 颜色

】WPF样式:如何更改触发器中的GradientStop颜色【英文标题】:WPFStyle:howtochangeGradientStopColorinTrigger【发布时间】:2011-01-3001:50:59【问题描述】:我有一个按钮样式:<Stylex:Key="ButtonStyle1"TargetType="x:TypeButton"><SetterProperty="Template... 查看详情

使用 WPF 的网格中的按钮数组

...如果我单击按钮,所有按钮都使用相同的事件处理程序。如何使行中的每个进度条和按钮不同?<W 查看详情

网格忽略 WPF 中的 ClipToBounds

】网格忽略WPF中的ClipToBounds【英文标题】:GridignoresClipToBoundsinWPF【发布时间】:2016-07-1622:21:12【问题描述】:给定一个非常基本的Grid,将ColumnDefinition的宽度设置为*,其中包含的按钮的硬编码宽度属性将被忽略,并且这些子元... 查看详情

如何在 WPF 中停止方法(通过按钮单击触发)

】如何在WPF中停止方法(通过按钮单击触发)【英文标题】:Howtostopamethod(triggeredbybuttonclick)inWPF【发布时间】:2021-06-1009:58:03【问题描述】:我的WPF中有一个私有asyncvoidButton_Click方法,它运行一个非常复杂的SQL查询,可以运行几... 查看详情

wpf中如何实现重叠的按钮点击事件同时触发

两个按钮重叠,上层的按钮是自己添加的,下层的按钮在一个大的控件中,怎么样才能点击上层的按钮(有动画效果),同时下层的按钮也触发点击事件参考技术A触发同一个事件你的click就订阅同一个处理方法就行啊 查看详情

从 WPF DataGrid 中的按钮触发 RelayCommand

】从WPFDataGrid中的按钮触发RelayCommand【英文标题】:FiringaRelayCommandfromabuttoninsideaWPFDataGrid【发布时间】:2012-08-2404:01:23【问题描述】:我有一个DataGrid显示在XAML中定义的客户列表,如下绑定到我的ViewModel:<DataGridName="CustomersData... 查看详情

WPF 按钮中的文本内容未垂直居中

】WPF按钮中的文本内容未垂直居中【英文标题】:TextcontentinaWPFbuttonnotbeingcentredvertically【发布时间】:2011-04-1920:54:20【问题描述】:是否存在WPF按钮的文本内容在文本上方出现多余空格的原因?我在StackPanel中有一个按钮。这个... 查看详情

wpf学习第三十七章触发器(代码片段)

原文:【WPF学习】第三十七章触发器  WPF中有个主题,就是以声明方式扩展代码的功能。当使用样式、资源或数据绑定时,将发现即使不使用代码,也能完成不少工作。  触发器是另一个实现这种功能的例子。使用触发器,... 查看详情

将情节提要的目标设置为 DataTemplate WPF 中的按钮

】将情节提要的目标设置为DataTemplateWPF中的按钮【英文标题】:SetTargetofStoryboardtoButtoninsideaDataTemplateWPF【发布时间】:2021-05-2414:48:35【问题描述】:我们正在尝试根据窗口大小设置按钮的高度和宽度。我们希望使用视觉状态来实... 查看详情

WPF Button isPressed 和 isEnabled 问题

...WPF应用程序中的一类按钮设置IsPressed和IsEnabled(false)属性触发器的样式。这是一个使用样式的带有按钮的UserControl...<User 查看详情

wpf学习第三十七章触发器(代码片段)

...定时,将发现即使不使用代码,也能完成不少工作。  触发器是另一个实现这种功能的例子。使用触发器,可自动完成简单的样式改变,而这通常需要使用样板事件处理逻辑。例如,当属性发生变化时可以进行响应,并自动调... 查看详情

wpf中如何彻底去除按钮边框?

】wpf中如何彻底去除按钮边框?【英文标题】:Howdoyoucompletelyremovethebuttonborderinwpf?【发布时间】:2010-11-0300:06:09【问题描述】:我正在尝试创建一个包含图像且没有边框的按钮-就像Firefox工具栏按钮在您将鼠标悬停在它们上方并... 查看详情