다음은 시나리오입니다.응용 프로그램 전체 자원을 어떻게 구성해야합니까?
저는 VS 2010을 사용하여 MEF를 사용하여 상당히 큰 WPF 프로젝트를 작성했습니다. 이 솔루션에는 여러 프로젝트가 있으며 모든 스타일에 대해 하나의 ResourceDictionary
이 있습니다.
AppStyles.xaml
ResourceDictionary
은 내 시작 프로젝트에 있으며 프로젝트의 모든 스타일을 포함합니다. 그리고 내 App.xaml
에서 나는 다음과 같습니다
<Application x:Class="Dionysus.Shell.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DispatcherUnhandledException="UnhandledException" ShutdownMode="OnMainWindowClose">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="AppStyles.xaml"/>
</ResourceDictionary>
</Application.Resources>
이제 완벽하게 디자인 VS 2010 모드 때 디버깅하고이 모든 작품, 올바른 스타일은 내 모든 컨트롤에 적용되고있다. 하지만 최근에 VS 2012로 전환했는데 디자이너가 더 이상 작동하지 않습니다! 내가 디버깅 할 때 완벽하게 작동하지만 내 스타일 중 하나를 사용할 때마다 다음과 같이
<Button Name="btnForward" Height="23" Margin="10,0" Style="{StaticResource DionysusButton}" Grid.Row="2" Grid.Column="0"/>
내가 얻을 VS 2012 디자이너에서 다음과 같은 오류 :
The resource "DionysusButton" could not be resolved.
나는이는 이유에 우둔입니다 일어나, 나는 Style
, 심지어는 ResourceDictionary
의 이름을 바꿨다.
VS 2012에서이 작업을 수행해야하는 다른 방법이 있습니까? 아니면 VS 2012에서 문제가 있습니까?
나는 나의 AppStyles.xaml
ResourceDictionary
x:Key
에의 x:Name
속성을 변경하면이 문제를 해결할 수 있지만,이 ResourceDictionary
에 대한 유효한 옵션이 아닙니다으로 내가 그렇게 할 수 없다고 말할 게시물을 많이 발견했다. 사전
에서
고맙습니다 - UPDATE
을 나는 마크의 답변을 사용하고 모든 기본 스타일을 제외하고는 잘되어 가고있는 것 같다. 나는 다음과 같은 스타일이 있습니다
<Style TargetType="DataGrid" x:Name="DataGridStyle"/>
을 그리고 이것은 내 주요 ResourceDictionary
입니다 :
<ResourceDictionary x:Name="Main"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles/AppStyling.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style TargetType="DataGrid" BasedOn="{StaticResource DataGridStyle}"/>
나는 그것이 잘 작동 ResourceDictionary
내 주요의 Style
태그를 추가 할 수 있지만하지 않는 스타일 분명히 모든 항목에 적용되지 않습니다.
가 'System.Windows.Markup.StaticResourceHolder'에 대한 값을 제공 예외
아이디어를 던졌다 : 나는 그것을 추가 할 때, 나는 다음과 같은 예외가?
당신은'x : Name'을 언급했지만 그것이 어디에 관련이 있는지 말하지는 않습니다 - 여러분의 코드에서 언급되지 않았습니다. 당신도 왜 그렇게 할 수 없는지 말하지 않습니다. –
죄송합니다! 나는 내 질문을 업데이트했다. –
아니, 생각. 내가 볼 수있는 한 모든 것이 잘 보입니다. 예외는 모두 및 아무것도 아닙니다. DataGridStyle이 비어 있거나 뭔가 잘못되었을 수 있습니까? 주요 사전의 x : Name을 제거하십시오. 어쨌든 그것을 필요로하지 않아야합니다 ... – Marc