WPF - Изменить стиль программно, "не могу найти стиль" - PullRequest
0 голосов
/ 02 ноября 2018

Сообщение об исключении:

System.Windows.ResourceReferenceKeyNotFoundException: ресурс '' {StaticResource style1} 'не найден.'

C # код:

private void Button_Click(object sender, RoutedEventArgs e)
{
  Button newBtn = new Button();

  newBtn.Height = 30;

  //newBtn.Style = Resources["style1"] as Style;
  newBtn.Style = (Style)FindResource("{StaticResource style1}");

  stackpanel1.Children.Add(newBtn);
}

XAML код:

<Grid.Resources>

  <Style x:Key="style1" TargetType="{x:Type Button}">


    .....styleofbutton
  </Style>

</Grid.Resources>



<Button Content="Button" HorizontalAlignment="Left" Style="{StaticResource style1}" Margin="128,98,0,0" VerticalAlignment="Top" Width="159" Height="61" Click="Button_Click"/>
<StackPanel x:Name="stackpanel1" HorizontalAlignment="Left" Height="292" Margin="348,72,0,0" VerticalAlignment="Top" Width="395"/>

newBtn не может найти мой стиль в коде XAML. Что я делаю не так?

1 Ответ

0 голосов
/ 02 ноября 2018

Ключ ресурса просто "style1":

newBtn.Style = (Style)FindResource("style1");

Вы также должны либо переместить Style в <Window.Resources>, либо искать его в Grid:

newBtn.Style = theNameOfTheGrid.Resources["style1"] as Style;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...