Ser*_*gio 2 wpf styles code-behind controltemplate
如果我有一个定义控件模板的样式,并且我有一个控件,让我们说一个按钮,有没有办法从样式控件后面的代码访问按钮?
感谢你们!=)
假设您的样式定义如下
<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>
Run Code Online (Sandbox Code Playgroud)
然后将其应用于按钮
<Button x:Name="myButton" Content="my default button" Style="{StaticResource myStyle}"/>
Run Code Online (Sandbox Code Playgroud)
您可以按如下方式访问控件模板中的按钮
var myTemplatedButton = myButton.Template.LoadContent() as Button;
Run Code Online (Sandbox Code Playgroud)
如果按钮放在容器内ControlTemplate,例如StackPanel:
<StackPanel>
<CheckBox IsChecked="True"/>
<Button x:Name="myTemplatedButton" Content="my templated button"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
您可以提取主容器并使用FindName方法获取模板化按钮
var templatedControl = myButton.Template.LoadContent() as FrameworkElement;
var templatedButton = templatedControl.FindName("myTemplatedButton") as Button;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
6023 次 |
| 最近记录: |