2014-12-06 2 views
0

본 웹 사이트를 처음 사용하고 프로그래밍에 익숙하지 않아 문제가 발생했습니다. Visual Studio 2010, C# WPF 응용 프로그램을 사용하고 있습니다.WPF C# 프로그래밍 방식으로 리소스 사전에서 스타일을 추가 하시겠습니까?

TextBlock.Inlines.Add 
        (new Run("text"){ Foreground = Brushes.Blue, FontWeight = FontWeights.ExtraBold }); 

이 라인은 어떤 문제가 발생하지 않는,하지만 난 리소스 사전은 이미 그 세터로 만든하고 난 어떻게 내가 할 수있는 확실하지 않다 :

내 프로그램에 코드 줄이 각 줄마다 프로그래밍 방식으로 사용하십시오. 나는 이런 식으로 뭔가를 시도했지만 아무 짓도 안 했어요 : 나는 문제가있을 것 같아요 무엇

TextBlock.Inlines.Add 
      (new Run("text") { Style = (Style)this.Resources["bluebold"] }); 

내가 코드와 I에 "Styles.xaml을"이라고 리소스 사전을 호출 아니에요이다 어떻게하는지 확신 할 수 없습니다.

답변

0

코드에서 변경해야합니까? 트리거로 접근 또는 StyleSelectors 많이 있습니다 여기에

는 코드의 내부 스타일을 변경하는 데 사용할 수있는 코드입니다 :

<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를

MainWindow.xaml는

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") }); 
    } 
} 
} 

알려 주시면 사용할 수있는 경우 알려드립니다.

+0

다른 색상의 텍스트를 텍스트 블록에 추가하는 단추가 여러 개 있습니다. 그 이유는 프로그래밍으로 필요한 이유입니다. 사용자가 제공 한 코드는 텍스트 블록의 모든 스타일을 한 스타일로 변경합니다. 사용 해봤습니다. TextBlock.Inlines.Add (새 실행 ("text") {스타일 = (스타일) this.FindResource ("stylename")})); 하지만 오류가 발생했습니다 : 'TextBlock'TargetType이 'Run'요소 유형과 일치하지 않습니다. –

+0

좋아요, 스타일과 자원 이름을 바꿨습니다 ... 시도해보십시오 –

+0

예 TargetType을 실행으로 설정하면 효과가 있습니다! 정말 고맙습니다! :디 –

관련 문제