2012-11-03 11 views
1

암시 적 스타일은 App.xaml에서 작동하지 않지만 로컬 페이지 자원을 사용하고 있습니다. 컨트롤을위한 글로벌 스타일을 만들려면 어떻게해야합니까? App.xaml에서응용 프로그램의 암시 적 스타일

<navigation:Page.Resources> 
<Style TargetType="Button"> 
    <Setter Property="Background" Value="Red" /> 
    <Setter Property="Foreground" Value="Navy" /> 
</Style> 
</navigation:Page.Resources> 

답변

0

프로젝트의 아무 곳이나 스타일을 사용하여 StilDict.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    ,,,, and what you use else> 
<Style x:Key="ButtonStyleNavyOnRed" TargetType="Button"> 
<Setter Property="Background" Value="Red" /> 
<Setter Property="Foreground" Value="Navy" /> 
</Style> 

에서

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="StilDict.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 

<UserControl> 
    <Button Style={StaticResource ButtonStyleNavyOnRed} Content="Yahoo! :)"/> 
</UserControl> 

중요 사항 x : Key = "ButtonStyleNavyOnRed"부분을 삭제하면 모든 대상 유형에서이 스타일을 가져 오지만 Button에서 파생 된 객체는 가져 오지 않습니다. http://msdn.microsoft.com/en-us/library/system.windows.style(v=vs.95).aspx

희망 사항!

+0

명시 적입니다. –

+0

오, 맞습니다. x를 삭제해야합니다. Key = "ButtonStyleNavyOnRed"부분. 그런 다음 테스트 해 보았습니다. 경고 해줘서 고마워. –

+0

예, app.xaml에서 병합 사전을 사용하고 있습니다. 스타일에 키를 지정하지 않을 때 읽은 것에서는 선언에서 TargetType의 모든 컨트롤에 암시 적으로 스타일을 설정합니다. 나는 이것이 위에서 보여준 것처럼 페이지 리소스 내에서뿐만 아니라 세계적으로 작동하도록 노력하고 있습니다. 이 문제를 해결하기 위해 무엇을 바꾸어야할지 모르겠습니다. 귀하의 제안에 감사드립니다. – OneFineDay

0

버튼에 적용됩니다!

<Style TargetType="ButtonBase"> 
<Setter Property="Background" Value="Red" /> 
<Setter Property="Foreground" Value="Navy" /> 
</Style> 
+0

그냥 버튼베이스 개체 또는 버튼을 alo에 대한 작동합니까? –

+0

ButtonBase에서 파생 된 모든 개체 여야합니다. 그것은 이상한 TargetType = ButtonBase 처음에 일한 다음 그냥 작업을 종료하고 TargetType = Button 전환하고 다시 작동합니까 ??? – OneFineDay

+0

내 게시물 MS의 링크 끝을 따릅니다. "스타일을 암시 적으로 설정하면 스타일은 TargetType 값과 정확히 일치하는 유형에만 적용됩니다. –