В UWP, как вы меняете установщик стиля в коде? - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь изменить стиль ActionButton в UWP TeachingTip.

У TeachingTip есть следующий атрибут:

public Style ActionButtonStyle { get; set; }

Я пытался сделать что-то вроде этого:

mytip.ActionButtonStyle.SetValue(Button.ForegroundProperty, "Red");

Но происходит сбой с исключением System.NullReferenceException. Я также пробовал разные типы значений (Windows .UI.Xaml.Media.Bru sh и Windows .UI.Color) вместо «Красного», но все они не с одинаковым исключением.

Я также попробовал следующее:

var setter = mytip.ActionButtonStyle.Setters.OfType<Setter>().FirstOrDefault(X => X.Property == Control.ForegroundProperty);
setter.Value = "Red";

Но это также не удалось, но с другим исключением - System.UnauthorizedAccessException

Ответы [ 2 ]

0 голосов
/ 21 января 2020

Разобрался, вот что в итоге сработало:

Style style = new Style(typeof(Button));
Setter setter = new Setter(Button.ForegroundProperty, new SolidColorBrush(Windows.UI.Colors.Red));
style.Setters.Add(setter);
mytip.ActionButtonStyle = style;
0 голосов
/ 21 января 2020

У меня одна и та же проблема была однажды, и мне удалось это сделать так: В файле App.xaml добавьте свой стиль

<Page.Resources>
  <SolidColorBrush x:Key="Orange" Color="#F49600" />
</Page.Resources>

Затем вы сможете получить к нему доступ из любого места в вашем коде, например

Button.Background = (SolidColorBrush)Application.Current.Resources["Orange"]; 

И если вы хотите сделать это целым стилем, вы можете сделать это следующим образом

<Style x:Key="MyStyle" TargetType="Path">
  <Setter Property="Background" Value="#F49600" />
</Style>
ActionButtonStyle = Application.Current.Resources["MyStyle"] as Style;

Надеюсь, что эта помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...