0

我在 WPF 中有一个自定义控件继承自Control,该控件的目的是显示其父级的高度和宽度以及位置。

所以我的控制有两个TemplatePart

1. [TemplatePart(Name = "LocationBox", Type = typeof(TextBlock))]
2. [TemplatePart(Name = "DimensionBox", Type = typeof(TextBlock))]

我在方法中得到这些部分,OnApplyTemplate但不确定我应该在哪里设置值,即设置值的方法是否合适ArrangeOverrideMeasureOverride

笔记。我有通过可视化树助手获取父元素的代码,因此获取父元素的位置或维度不是问题

4

1 回答 1

1

如果您可以访问OnApplyTemplate处理程序方法中的父元素,那么这将是添加您将为父控件监视的任何处理程序的好地方。CustomControl DependencyProperty然后,您可以在更改父级的相关属性时从这些处理程序方法更新您的 s 。例如:

public override void OnApplyTemplate()
{
    // Get access to parent control here, then
    parentControl.SizeChanged += Parent_SizeChanged;
}

public void Parent_SizeChanged(object sender, SizeChangedEventArgs e)
{
    Dimension = e.NewSize;
}
于 2013-11-06T10:26:54.797 回答