本文介绍了WPF中带有Setter的EventTrigger?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在 WPF 窗口中有一个普通的 Button 和 TextBox,我想要一个带有 EventTrigger 的 Button 模板,它监听 Button.Click 然后设置 TextBox 的布尔属性.没有代码隐藏.
I have a normal Button and TextBox in a WPF-Window and I want a Template for the Button with a EventTrigger that listens to Button.Click and then sets a boolean-property of the TextBox. No code-behind.
像这样:
<ControlTemplate.Triggers>
<EventTrigger SourceName="MyButton" RoutedEvent="Button.Click">
<Setter TargetName="MyTextBox" Property="Focusable" Value="False" />
</EventTrigger>
推荐答案
这里是一个示例,它设置和清除 EventTrigger 的 TextBox 上的 Focusable
.
希望您可以根据自己的情况调整此示例.
Here is a sample that sets and clears Focusable
on a TextBox from an EventTrigger.
Hopefully you can adapt this example to your situation.
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBox
x:Name="tb"
Grid.Row="0"
Text="Here is some sample text">
</TextBox>
<Button
x:Name="btnFocusTrue"
Grid.Row="1"
Content="Set True">
</Button>
<Button
x:Name="btnFocusFalse"
Grid.Row="2"
Content="Set False">
</Button>
<Grid.Triggers>
<EventTrigger RoutedEvent="Button.Click" SourceName="btnFocusTrue">
<BeginStoryboard Name="FocusTrueStoryboard">
<Storyboard >
<BooleanAnimationUsingKeyFrames
Storyboard.TargetName="tb"
Storyboard.TargetProperty="(TextBox.Focusable)">
<DiscreteBooleanKeyFrame
KeyTime="00:00:01"
Value="True" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Button.Click" SourceName="btnFocusFalse">
<BeginStoryboard Name="FoucsFalseStoryboard">
<Storyboard >
<BooleanAnimationUsingKeyFrames
Storyboard.TargetName="tb"
Storyboard.TargetProperty="(TextBox.Focusable)">
<DiscreteBooleanKeyFrame
KeyTime="00:00:01"
Value="False" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Grid.Triggers>
</Grid>
这篇关于WPF中带有Setter的EventTrigger?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!