2016-05-20 7 views
-1

У меня есть пользовательский элемент управления WPF, в котором есть несколько ярлыков (созданных динамически). Я хочу установить стиль этих меток (каждый ярлык должен иметь один и тот же стиль) из моего пользовательского элемента управления.WPF Применить стиль к дочерним элементам управления пользователя

Так что простым языком, устанавливающим стиль пользовательского контроля, должен применяться этот стиль для всех его меток.

ответ

2

можно объявить стиль этикетки в UserControl ресурсов и связать значения сеттеров с UserControl свойств, например:

<UserControl x:Class="WpfApplication3.UserControl1" 
      x:Name="Uc1" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <UserControl.Resources> 
     <Style TargetType="Label"> 
      <Setter Property="Foreground" 
        Value="{Binding Foreground, ElementName=Uc1, Mode=OneWay}"/> 
     </Style> 
    </UserControl.Resources> 

    <Grid>    
     <Label Content="123"/> 
    </Grid> 
</UserControl> 

Этим способом меняющегося UserControl переднего план будет влиять на все этикетки внутри (если они не отменяют Настройка переднего плана)

Стиль может использовать имя типа (Label) в качестве ключа и будет применяться по умолчанию. Или он может иметь какой-то другой ключ и должен быть явно назначен динамически созданным ярлыкам

1

В UserControl.Resources вы можете установить что-то вроде:

<Style TargetType="Label"> 
    <Setter Property="Foreground" Value="#112233" /> 
</Style> 

До тех пор, пока вы не дать стиль кс: Ключевой элемент, то он будет применен для всех дочерних ярлыков в вашем UserControl.

Смежные вопросы