[英]Changing property of control defines in template
我想访问在MaterialDesignClock
中定义的MaterialDesignClock的BackgroundEllipse
访问Ellipse
后,我需要更改BackgroundEllipse
的不透明度。
下面的示例代码不起作用。
<materialDesign:Clock x:Name="MaterialTimePicker" Is24Hours="True"
BorderThickness="0" >
<materialDesign:Clock.Style>
<Style>
<Setter TargetName="BackgroundEllipse" Property="Opacity" Value="1" />
</Style>
</materialDesign:Clock.Style>
</materialDesign:Clock>
如果不复制整个模板并对其进行编辑,则无法更改 XAML 中模板中包含的Ellipse
的Opacity
。 Opacity
的值被硬编码为0.23
。
您可以动态更改它:
private void MaterialTimePicker_Loaded(object sender, RoutedEventArgs e)
{
Clock clock = (Clock)sender;
Ellipse ellipse = clock.Template.FindName("BackgroundEllipse", clock) as Ellipse;
if (ellipse != null)
{
ellipse.Opacity = 1.0;
}
}
XAML:
<materialDesign:Clock x:Name="MaterialTimePicker" Is24Hours="True" BorderThickness="0"
Loaded="MaterialTimePicker_Loaded"/>
与复制模板的 XAML 解决方案相比,这需要的标记要少得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.