我正在开发一个自定义控件,其中有一个TextBox
和一个Button
放置在Grid
.
问题是当我为UserControl
Say - Left 设置自定义属性时:Button 应该显示在 之前TextBox
,而 Right Button 应该显示在文本框的右侧。
因为,我正在定义 a 中的两个元素Grid
- 无法根据我的要求进行定位。
我正在开发一个自定义控件,其中有一个TextBox
和一个Button
放置在Grid
.
问题是当我为UserControl
Say - Left 设置自定义属性时:Button 应该显示在 之前TextBox
,而 Right Button 应该显示在文本框的右侧。
因为,我正在定义 a 中的两个元素Grid
- 无法根据我的要求进行定位。
如果您必须使用 a Grid
,您可以制作Grid
3 列并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}