[英]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.