TextBox
内にと がButton
配置されているカスタム コントロールを開発していGrid
ます。
UserControl
問題は、 Say - Leftのカスタム プロパティを設定したときです。Button は の前に表示さTextBox
れ、Right の場合、ボタンはテキスト ボックスの右側に表示されます。
両方の要素を定義しているためGrid
、要件に従って配置できません。
TextBox
内にと がButton
配置されているカスタム コントロールを開発していGrid
ます。
UserControl
問題は、 Say - Leftのカスタム プロパティを設定したときです。Button は の前に表示さTextBox
れ、Right の場合、ボタンはテキスト ボックスの右側に表示されます。
両方の要素を定義しているためGrid
、要件に従って配置できません。
を使用する必要がある場合は、3 つの列を作成し、カスタム プロパティに基づいて切り替えるGrid
ことができます。Grid
TextBox
Grid.Column
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Button Grid.Column="1"
Content="Some Text" />
<TextBox Text="Test">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Grid.Column"
Value="0" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}},
Path=Left}"
Value="True">
<Setter Property="Grid.Column"
Value="2" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</Grid>
を切り替えることが{x:Type UserControl}
できDataTrigger
ます{x:Type CustomUserControl}