我是这个网站的新手,也是编程的新手,我遇到了一个问题。 我正在使用Visual Studio 2010,C#WPF应用程序。
我的程序中有这行代码:
TextBlock.Inlines.Add
(new Run("text"){ Foreground = Brushes.Blue, FontWeight = FontWeights.ExtraBold });
这行没有任何问题,但我已经用这些setter创建了一个资源字典,我不知道如何以编程方式为每一行使用它。我试过这样的事情,但它没有做任何事情:
TextBlock.Inlines.Add
(new Run("text") { Style = (Style)this.Resources["bluebold"] });
我认为问题可能是我没有在代码中调用名为“Styles.xaml”的资源字典,我不确定如何做到这一点。
答案 0 :(得分:0)
是否有必要从代码中更改? Triggers或StyleSelectors有很多方法
以下是可用于更改代码内部样式的代码:
MainWindow.xaml
<Window x:Class="StylesFromResourceExample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style x:Key="RunStyle1" TargetType="{x:Type Run}">
<Setter Property="Foreground" Value="Blue"/>
<Setter Property="FontWeight" Value="ExtraBold"/>
</Style> </Window.Resources>
<Grid>
<TextBlock x:Name="txtBlock" HorizontalAlignment="Left" Text="TextBlock" VerticalAlignment="Top" Height="20" Width="142" />
<Button Width="100" Height="30" Content="Change" Click="Button_Click" />
</Grid>
</Window>
MainWindow.xaml.cs
using System.Windows;
namespace StylesFromResourceExample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
txtBlock.Inlines.Add(new Run("New Text") { Style = (Style)this.FindResource("RunStyle1") });
}
}
}
请告诉我,如果它对您有用。