当我选中或取消选中 a时CheckBox,我想清除TextBox并设置焦点.我使用代码隐藏实现了它.
我的xmal:
<CheckBox x:Name="checkbox1" Checked="checkbox1_Checked" Unchecked="checkbox1_Checked" />
<TextBox x:Name="textbox1" Text="Hello" />
Run Code Online (Sandbox Code Playgroud)
我的C#:
private void checkbox1_Checked(object sender, RoutedEventArgs e)
{
textbox1.Text = "";
textbox1.Focus();
}
Run Code Online (Sandbox Code Playgroud)
是否可以在XAML中完成所有操作?
使用数据触发器.它们通过创建与常规属性的绑定来工作,然后监视其更改.
例如,请考虑以下示例:
<Window x:Class="WpfTutorialSamples.Styles.StyleDataTriggerSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="StyleDataTriggerSample" Height="200" Width="200">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<CheckBox Name="cbSample" Content="Hello, world?" />
<TextBlock HorizontalAlignment="Center" Margin="0,20,0,0" FontSize="48">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="No" />
<Setter Property="Foreground" Value="Red" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=cbSample, Path=IsChecked}" Value="True">
<Setter Property="Text" Value="Yes!" />
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我们有一个CheckBox和一个TextBlock.使用DataTrigger,我们将TextBlock绑定到CheckBox的IsChecked属性.然后我们提供一个默认样式,其中文本为"No",前景色为红色,然后,使用DataTrigger,我们提供一个样式,用于CheckBox的IsChecked属性更改为True时,在这种情况下我们制作它绿色,上面写着"是的!" (如屏幕截图所示).
你可以在这里找到更多.