Набор стилей для StaticResource управления в коде

предположим, у меня есть что-то вроде этого (в MainPage.XAML-код):

<Page.Resources>
    <Style TargetType="TextBlock" x:Key="TextBlockStyle">
        <Setter Property="FontFamily" Value="Segoe UI Light" />
        <Setter Property="Background" Value="Navy" />
    </Style>
</Page.Resources>

затем я хотел бы применить этот стиль StaticResource к моему динамическому созданному TextBlock (файл MainPage.код XAML.цезий.)

есть ли возможность сделать это вместо того, чтобы делать что-то вроде этого:

myTextBlock.FontFamily = new FontFamily("Segoe UI Light");
myTextBlock.Background = new SolidColorBrush(Color.FromArgb(255,0,0,128));

2 ответов


вы можете установить, что-то вроде этого,

  TextBlock myTextBlock= new TextBlock ()
    {
        FontFamily = new FontFamily("Segoe UI Light");
        Style = Resources["TextBlockStyle"] as Style,
    };

вы можете использовать это:

Style textBlockStyle;
try
{
    textBlockStyle = FindResource("TextBlockStyle") as Style;
}
catch(Exception ex)
{
    // exception handling
}

if(textBlockStyle != null)
{
    myTextBlock.Style = textBlockStyle;
}

или TryFindResource подход:

myTextBlock.Style = (Style)TryFindResource("TextBlockStyle");