如何解决WPF - 如何从嵌套模板化控件的触发器设置控件的依赖属性
我有一个子类的 ContentControl (MySpecialContentControl) 并向其中添加了一个名为“mySpecialDP”的 DP。 在此控件的样式模板中,模板化的“ResizeDecorator”(也是子类控件)中还有一些其他控件,如下所示:
"Local": {
"Authority": "https://accounts.google.com/","ClientId": "4....apps.googleusercontent.com","PostlogoutRedirectUri": "https://localhost:44380/authentication/logout-callback","RedirectUri": "https://localhost:44380/authentication/login-callback","ResponseType": "id_token token"
}
我试图找到一种方法来从模板化控件 (ResizeDecoratorTemplate) 的 IsMouSEOver 触发器中设置“mySpecialDP”属性。 ResizeDecoratorTemplate 可以知道他的“模板父级”(controls:MySpecialContentControl) 吗?
这样做的原因是内容控件是 Canvas 的一部分,如果用户单击 Canvas 内的某处,或者特别是在 ResizeThumb 控件上,我需要知道调用 MouseLeftButtonDown 或 MouseMove 时。我的想法是使用枚举来区分。
<ControlTemplate x:Key="ResizeDecoratorTemplate" targettype="{x:Type Control}">
<Grid>
<controls:ResizeThumb Height="1" Margin="0,-1,0"/>
<controls:ResizeThumb Width="1" Margin="-1,0"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouSEOver" Value="True">
<Setter Property="mySpecialDP" Value="X"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="ControlStyle" targettype="{x:Type controls:MySpecialContentControl}">
<Setter Property="mySpecialDP" Value="Y"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate targettype="{x:Type controls:MySpecialContentControl}">
<Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}">
<Control x:Name="ResizeDecorator" Template="{StaticResource ResizeDecoratorTemplate}" Visibility="Collapsed"/>
<ContentPresenter Content="{TemplateBinding ContentControl.Content}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="Selector.IsSelected" Value="True">
<Setter TargetName="ResizeDecorator" Property="Visibility" Value="Visible"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。