これはすべてXamlで実行できます。コードビハインドは必要ありません。
RadioButton
IsChecked
最初にプロパティをプロパティにバインドしTextBox
IsEnabled
、次にTrigger
on trueを使用して、プロパティの使用TextBox
IsEnabled
にフォーカスを設定します。TextBox
FocusManager.FocusedElement
例:
<Window x:Class="WpfApplication13.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Name="UI">
<Grid>
<StackPanel>
<RadioButton x:Name="radioBtn" Content="Click me!" />
<TextBox x:Name="txtbox" IsEnabled="{Binding ElementName=radioBtn, Path=IsChecked}">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="True">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=txtbox}"/>
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</StackPanel>
</Grid>
</Window>