gpt4 book ai didi

wpf - 代码风格的访问控制

转载 作者:行者123 更新时间:2023-12-03 23:54:18 28 4
gpt4 key购买 nike

如果我有一个定义控件模板的样式,并且在其中我有一个控件,比如说一个按钮,有没有办法从样式化控件后面的代码中访问该按钮?

谢谢你们! =)

最佳答案

假设你有一个样式定义如下

        <Style x:Key="myStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Button x:Name="myTemplatedButton" Content="my templated button"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

然后你将它应用到一个按钮上

<Button x:Name="myButton" Content="my default button"  Style="{StaticResource myStyle}"/>

可以通过如下方式访问控件模板中的按钮

var myTemplatedButton = myButton.Template.LoadContent() as Button;

如果按钮放置在 ControlTemplate 内的容器中,例如 StackPanel:

<StackPanel>
<CheckBox IsChecked="True"/>
<Button x:Name="myTemplatedButton" Content="my templated button"/>
</StackPanel>

您可以提取主容器并使用 FindName获取模板按钮的方法

var templatedControl = myButton.Template.LoadContent() as FrameworkElement;
var templatedButton = templatedControl.FindName("myTemplatedButton") as Button;

希望对你有帮助

关于wpf - 代码风格的访问控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19208964/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com