Как применить Стиль программно в CustomControl - PullRequest
3 голосов
/ 16 июня 2011

У меня есть пользовательская кнопка ColorPickerButton в WPF и для нее применен стиль «ColorPickerButtonStyle», который я должен применить в xmal следующим образом;

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="RD_ColorThemes.xaml"/>
           <ResourceDictionary Source="RDColorPicker.xaml"/>
        </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary>
</UserControl.Resources>

<Grid x:Name="grd">
<cp:ColorPickerButton x:Name="btn" Width="25" Height="25" 
Style="{DynamicResource ColorPickerButtonStyle}" 
Click="ColorPickerButton_Click" />

это работает нормально. Но если я забуду применить стиль "{DynamicResource ColorPickerButtonStyle}", кнопка будет выглядеть как смертельная рыба. Здесь я пытаюсь применить эту часть и Style = "{DynamicResource ColorPickerButtonStyle}" для встраивания в часть реализации класса ColorPickerButton, как в конструкторе класса;

public class ColorPickerButton:Button
{
   ....
   public ColorPickerButton()
   {
      ....
      //How to call resourcedictionary and apply style "ColorPickerButtonStyle" for this      button 
   }
}

1 Ответ

2 голосов
/ 16 июня 2011

Что-то вроде:

this.SetResourceReference(ColorPickerButton.StyleProperty, "ColorPickerButtonStyle");
...