У меня есть пользовательская кнопка ColorPickerButton, в WPF и стиль «ColorPickerButtonStyle» применяется для нее, которую я должен применять в xmal следующим образом:Как применять стиль программно в CustomControl
<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}», то кнопка будет выглядеть как рыба-смерть. То, что я пытаюсь сделать здесь, это то, что я хотел бы применить эту часть. < ResourceDictionary Source = "RDColorPicker.xaml"/> и Style = "{DynamicResource ColorPickerButtonStyle}", которые будут внедрены в часть реализации класса ColorPickerButton, как в Конструктор класса;
public class ColorPickerButton:Button
{
....
public ColorPickerButton()
{
....
//How to call resourcedictionary and apply style "ColorPickerButtonStyle" for this button
}
}
Это будет полезно для меня. Если вы дадите мне несколько советов и подсказок.
Благодаря вам
Спасибо @Zahid, я должен загрузить ResourceDictionary перед тем установить стиль. ResourceDictionary rd = new ResourceDictionary(); rd.Source = новый Uri («/ CustomWPFColorPicker; компонент/RDColorPicker.xaml», System.UriKind.Relative); this.Resources.MergedDictionaries.Add (rd); this.SetResourceReference (ColorPickerButton.StyleProperty, "ColorPickerButtonStyle"); // Это также workfine: //this.Style = (Style) this.FindResource ("ColorPickerButtonStyle"); –
приятно знать :) –