내 문제는 간단 해 보였습니다 : 내 기본 페이지의보기 상자가 있고 선택한 테마 (theme1 또는 theme2)에 따라 적절한 이미지 (WhiteImage 또는 BlackImage 모두 정의 됨)를 표시하고 싶습니다. 리소스 아래에서 myImages.xaml의 SVG 캔버스로).WPF/XAML에서 서로 다른 이미지 표시 테마
<Viewbox x:Name="myCustomImage"
VerticalAlignment="Top"
Height="24"
Margin="0,0,10,0"
Child="{StaticResource myImage}" />
가 그럼 난 theme1.xaml의 캔버스 myimage을 정의하려고 (그리고 theme2.xaml 유사)은 다음과 같습니다 :
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:myApp">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Resources/myImages.xaml" />
</ResourceDictionary.MergedDictionaries>
...
<Color x:Key="myForegroundcolor">#FF63398F</Color>
...
<Canvas x:Key="myImage">WhiteImage</Canvas>
</ResourceDictionary>
이 던졌습니다
이
내가 할 수 있다고 생각 것입니다 오류 메시지 - 'String'유형의 값을 'UI ElementCollection'유형의 콜렉션 또는 사전에 추가 할 수 없습니다.처음부터 올바른 방법입니까? 그렇다면이 오류를 어떻게 수정합니까?
편집 : 아래의 딘의 조언 (감사)을 따랐습니다.
변경된 resourcetheme1.xaml을 다음과 같이 :
<Canvas x:Key="myImage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Width="200"
Height="100">
<ContentControl Content="{StaticResource WhiteImage}" />
<Canvas>
<Canvas>
<Path Fill="#FFFFFFFF"
Data=... />
<Path Fill="#FFFFFFFF"
Data=... />
</Canvas>
</Canvas>
</Canvas>
변경된에서 MainPage.xaml을 다음과 같이
<Viewbox x:Name="myViewbox"
...
Height="32"
Child="{StaticResource WhiteImage}" />
추가 .cs에 대한 종속성 속성 : 이것은 내가 무슨 짓을 ..
public Canvas myImage
{
get
{
return (Canvas)GetValue(myImageProperty);
}
set
{
SetValue(myImageProperty, value);
}
}
이제 mainpage.xaml에서이 줄에 다른 오류가 표시됩니다. Child = "{StaticResource WhiteImage}"/> - System.Windows.StaticResourceExtension에 값을 제공하면 예외가 발생했습니다. WhiteImage라는 리소스를 찾을 수 없습니다. xaml을 myImage btw로 변경하면 같은 오류가 발생합니다. 어떤 도움을 주셔서 감사합니다. 관련 메모에서, 나는 이것이 어렵다는 것을 알고 있습니다. 나는이 모든 것을하려고 노력하고 있습니다. : theme = black viewbox.child = whiteImage else viewbox.child = blackimage.