Resourcedictionary Element 또는 Usercontrol?
-
20-09-2019 - |
문제
로고를 그릴 XAML이 있으며 다른 XAML 파일 에서이를 재사용하고 싶습니다 (UI가없고 코드가 필요하지 않음). 로고 XAML의 최상위 레벨은 a Canvas
안건.
다른 XAML 파일에서 로고를 사용하려면이 로고를 요소로 정의하는 것이 가장 좋습니다. ResourceDictionary
또는 a UserControl
?
이것은 쉬운 것 같습니다 UserControl
, 그러나 XAML 내에 지정할 수 있도록 XAML Reader와 함께 XAML 파일을로드하고 싶습니다. A와 같은 품목을 저장하는 것이 가능해 보입니다 Canvas
안에 ResourceDictionary
그러나 나는 그들을 참조하는 방법을 잘 모르겠습니다.
예를 들어, 내 로고를 ResourceDictionary
다음과 같이 요소 :
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas x:Name="LayoutRoot" x:Key="Logo">
<!-- My Logo -->
</Canvas>
</ResourceDictionary>
그러나 어떻게 이것을 사용할 수 있습니까? Logo
다른 XAML 파일에서 - 아마도 리소스에 대한 잘못된 아이디어가 있었을까요?
해결책
솔루션이 VisualBrush라는 것을 알았습니다. 나는 이것을 Resourcedictionary에서 다음과 같이 정의 할 수 있습니다.
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<VisualBrush x:Key="Logo">
<VisualBrush.Visual>
<Canvas x:Name="LayoutRoot" x:Key="Logo">
<!-- My Logo -->
</Canvas>
그런 다음 필요한 경우이 VisualBrush를 사용하십시오.
다른 팁
일반적으로,이를 위해 리소스 사전을 만들려면 스타일을 만들 것입니다. 그런 다음 원하는 다른 XAML 파일에서 컨트롤을 삭제하고 자원으로 스타일을 지정할 수 있습니다.
그러나 UserControl은 잠재적으로 더 쉬운 옵션이 될 것입니다. 어디에서나 떨어 뜨릴 수있는 간단하고 재사용 가능한 요소 일 것입니다.