문제

로고를 그릴 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은 잠재적으로 더 쉬운 옵션이 될 것입니다. 어디에서나 떨어 뜨릴 수있는 간단하고 재사용 가능한 요소 일 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top