gpt4 book ai didi

c# - 处理来自 ResourceDictionary 的事件

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:57 26 4
gpt4 key购买 nike

我有 8 个自定义单选按钮,样式如下所示

<Style x:Key="RadioSubMenuTbox" TargetType="{x:Type RadioButton}">
<Setter Property="Foreground" Value="#FFFFFF"/>
<Setter Property="Height" Value="35"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="FontFamily" Value="{StaticResource fontIbtisam}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<Border Name="brdMenu" CornerRadius="0" Background="#20000000" BorderBrush="White" BorderThickness="0" Padding="1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<ContentPresenter x:Name="RadioContentPresenter" Content="{TemplateBinding Content}" VerticalAlignment="Center" HorizontalAlignment="Center">
<ContentPresenter.Resources>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
<TextBox Name="txtM" Visibility="Collapsed" Margin="0,5,4,5" Style="{StaticResource txtboxDefaultNoShadow}" Grid.Column="1" Width="100"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="txtM" Property="Visibility" Value="Visible" />
<Setter TargetName="brdMenu" Property="Background" Value="#F2826A" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="brdMenu" Property="BorderBrush" Value="#F2826A"/>
<Setter TargetName="brdMenu" Property="TextElement.Foreground" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

RadioButton IsChecked 时,RadioButton 中的文本框可见,现在样式位于 ResourceDictionary 文件中,我想处理每个文本框的 TextChanged 事件.

我可以按如下方式访问 TextBox

TextBox aTBox = (TextBox)MyRButton.Template.FindName("txtM", MyContentControl);

但是如何处理 TextChanged 事件呢?

最佳答案

ResourceDictionary 可以像 Windows 一样有代码隐藏,您可以添加一个事件处理程序并从那里调用 textchanged,例如:

  1. ResourceDictionary 的同一文件夹中的 visual studio 中添加一个新类
  2. x:Class 属性添加到 XAML 文件

    <ResourceDictionary x:Class="YourNameSpace.YourClass"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  3. 现在将事件处理程序添加到您的 TextBox txtM

更多详情可以查看Fredrik Hedblad's Answer

关于c# - 处理来自 ResourceDictionary 的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50212898/

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