2015-01-14 2 views
-1

는 임이 새로운 그래서 아마 그 잘못 될 수있는 매우 간단한 일이 ...WPF 스타일 템플릿

나는 스타일있는 ResourceDictionary를 사용하려고하지만, 아무튼 일하지 마라. 이 디렉토리입니다 :

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

<LinearGradientBrush x:Key ="DarkBackground" StartPoint ="0,0" EndPoint =" 1,1"> 
    <GradientStop Offset="0" Color =" #FF333344"></GradientStop> 
    <GradientStop Offset="1" Color =" #FF666677"></GradientStop> 
</LinearGradientBrush> 

<LinearGradientBrush x:Key="StandardBackground" EndPoint="0,1" StartPoint="0,0"> 
    <GradientStop Color="#FFF3F3F3" Offset="0"/> 
    <GradientStop Color="#FFEBEBEB" Offset="0.5"/> 
    <GradientStop Color="#FFDDDDDD" Offset="0.5"/> 
    <GradientStop Color="#FFBBBBBB" Offset="1"/> 
</LinearGradientBrush> 
Application.xaml 그렇게 보이는

:

내 MainWindow를에서
<Window 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 

내가 원하는 다음 MainWindow를에

<Application x:Class="MyApplication.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="\src\GUI\MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary Source ="StyleTemplates.xaml"> </ResourceDictionary> 
    </Application.Resources> 
</Application> 

져야 할 엔트리 다음과 같이하십시오.

<TabItem Header="Project config" Background="{StaticResource StandardBackground}" Margin="-2,-2,2,0" IsEnabled="{Binding ToolPreference.ProjectLoaded}"> 

MainWindow.xaml 및 다른 모든 availabe 창에서 스타일을 정적 리 소스로 가져 오려면 다음해야 할 일이 있습니까? 내 MainWindow.xaml 내가 이것을하려고 할 때 이제 "StandardBackground"를 볼 수 있습니다에서

: 내가 추가

<TabItem Header="Project config" Background="{StaticResource x:StandardBackground}" Margin="-2,-2,2,0" IsEnabled="{Binding ToolPreference.ProjectLoaded}"> 

있는 "X :"나는 StandardBackground과 DarkBackground와 드롭 다운을 얻는다. "StandardBackground 확인할 수 없습니다 자원 : X"

+0

을이 http://prntscr.com/5sdssx –

+0

좋아 나는 시도했지만 그것의 아직 작동하지 않습니다 ... – Andreas

+0

Tabitem 배경은 스타일을 편집하여 변경할 수 있습니다.이 http://prntscr.com/5se761을 참조하십시오. –

답변

0

보세요 (독일어에서 영어로 번역) :하지만 나는 오류가 발생합니다. 귀하의 StandardBackground 및 DarkBackground 리소스가 다른 컨트롤에서 제대로 작동하는 것으로 판단됩니다. 이 경우 문제는 TabItem의 Background 속성이 아무런 영향을 미치지 않는다는 것입니다. 원하는 모양을 얻으려면 TabControl의 스타일을 조사해야합니다.

당신의 스타일은 적어도 액세스 할 수 있는지 확인하려면 다음과 같은 XAML 변화를 시도 할 수 있습니다 : 당신은 같은 ResourceDictionary에 병합해야

<TabItem> 
    <TabItem.Header> 
     <TextBox Text="Project config" Background="{StaticResource StandardBackground}" /> 
    </TabItem.Header> 
</TabItem> 
+0

텍스트 상자에서 제대로 작동합니다. 나는 TabContol 특정 배경을 보게 될 것이다 ... 고마워. – Andreas

-2

이 XAML 아무 문제가 없습니다

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source ="StyleTemplates.xaml"> </ResourceDictionary> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 
+0

시도했지만 여전히 작동하지 않습니다. 아마도 "MainWindow.xaml"에 뭔가를 추가해야합니까?! – Andreas

+0

두 개 이상을 사용해야하는 경우가 아니면 사전을 병합 할 필요가 없습니다. – RogerN

+0

@Andreas 죄송합니다. 문제가 해결되지 않았습니다. – user2250152