WPF 中代码中的访问控制模板的子项
本文关键字:访问控制 代码 WPF | 更新日期: 2023-09-27 18:33:30
此拇指用于自定义控件滑块。有什么方法可以在代码中访问拇指边框吗?
<Style x:Key="SliderThumbStyle" TargetType="Thumb">
<Setter Property="SnapsToDevicePixels" Value="true" />
<Setter Property="OverridesDefaultStyle" Value="false" />
<Setter Property="Height" Value="18" />
<Setter Property="Width" Value="18" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Thumb">
<Grid>
<Border x:Name="thumbBorder"
CornerRadius="9,0,0,9"
Background="DimGray" />
<Ellipse x:Name="thumbEllipse"
Fill="Orange">
</Ellipse>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
您可以使用 VisualTreeHelper 浏览拇指的可视化树,并在其中查找任何子项(边框/椭圆)。以下是查找特定类型的子级的最简单方法
private static DependencyObject RecursiveVisualChildFinder<T>(DependencyObject rootObject)
{
var child = VisualTreeHelper.GetChild(rootObject, 0);
if (child == null) return null;
return child.GetType() == typeof (T) ? child : RecursiveVisualChildFinder<T>(child);
}
您可以更新此函数以检查子名称也返回