WPFウィンドウに通常のButtonとTextBoxがあり、Button.ClickをリッスンするEventTriggerを備えたButtonのテンプレートが必要です。次に、TextBoxのブールプロパティを設定します。ノーコード開発。
このようなもの:
<ControlTemplate.Triggers>
<EventTrigger SourceName="MyButton" RoutedEvent="Button.Click">
<Setter TargetName="MyTextBox" Property="Focusable" Value="False" />
</EventTrigger>
これは、EventTriggerからTextBoxのFocusable
を設定およびクリアするサンプルです。
うまくいけば、この例を自分の状況に適応させることができます。
<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>