[英]How to change dependency property behavior in UserControl
我有一个WPF用户控件,其中包含一个TextBox
和一些按钮。 现在,我想更改用户控件的VerticalContentAlignment
属性的处理方式,以便仅更改所包含文本框的垂直内容对齐方式,而不更改用户控件本身的垂直内容对齐方式。 那么,如何覆盖用户控件的VerticalContentAlignment
依赖项属性以实现所需的行为?
您可以为UserControl编写一个ControlTemplate,而该模板仅忽略VerticalContentAlignment属性。 然后,例如通过RelativeSource绑定,将文本框的VerticalAlignment绑定到UserControl的VerticalContentAlignment属性。
<UserControl ...>
<UserControl.Template>
<ControlTemplate TargetType="UserControl">
<ContentPresenter
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</ControlTemplate>
</UserControl.Template>
<Grid Background="AliceBlue">
<TextBlock
Text="Hello"
VerticalAlignment="{Binding VerticalContentAlignment,
RelativeSource={RelativeSource AncestorType=UserControl}}"/>
</Grid>
</UserControl>
测试用例:
<Grid>
<local:MyUserControl
Height="100"
VerticalAlignment="Center"
VerticalContentAlignment="Bottom"/>
</Grid>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.