Если у меня есть стиль, который определяет шаблон управления, и у меня есть элемент управления, допустим, кнопка, есть ли способ получить доступ к кнопке из кода за стилем управления?Контроль доступа в стиле от кода
Спасибо, ребята! =)
Если у меня есть стиль, который определяет шаблон управления, и у меня есть элемент управления, допустим, кнопка, есть ли способ получить доступ к кнопке из кода за стилем управления?Контроль доступа в стиле от кода
Спасибо, ребята! =)
Скажем, у вас стиль определяется следующим
<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;
Надеется, что это помогает
спасибо, что вы человек! =) – Sergio
Это не работает, когда этот код находится в файле Generic.xaml в папке «Темы». –
Что вы пробовали? –