前提・実現したいこと
TextBoxを継承したカスタムコントロールで、Tabキーでフォーカス移動を行うと
カスタムコントロールの外枠にフォーカスがあたり、再度、タブキー押下でTextBox
にフォーカスがあたる、という挙動を、タブキー1回でTextBoxにフォーカス移動をさせたい
呼び出し元でIsTabStop="False"つければ実現可能なのはわかったのですが
これだと、カスタムコントロールを使用する全箇所にIsTabStop="False"を記述する必要があり
冗長なので何かいい手はないかと考えています。
ご教示お願いいたします。
該当のソースコード
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApp3"> <Style TargetType="{x:Type local:CustomControl1}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type local:CustomControl1}"> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> <!--カスタムコントロールを作成してTextBoxを追加しただけ--> <TextBox /> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> </ResourceDictionary>
<Window x:Class="WpfApp3.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:WpfApp3" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Title="MainWindow" Width="800" Height="450" mc:Ignorable="d"> <StackPanel> <!-- 望んだ挙動になるがカスタムコントロールを使用する全箇所に「IsTabStop="False"」が必要になる --> <local:CustomControl1 IsTabStop="False" /> <local:CustomControl1 IsTabStop="False" /> <local:CustomControl1 IsTabStop="False" /> </StackPanel> </Window>

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/27 03:34