2014-10-15 5 views
2

나는 ResourceDictionary에 (guiLayout.xaml)에서 정의 된 그리드ResourceDictionary에서 그리드 정의를 재사용하는 방법은 무엇입니까?

guiLayout.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">  
<Grid x:Key="guiLayout"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="10"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
</Grid> 

또한 내가 가지고있는 MainWindow.xaml을 다시 사용하려고 해요,

<Window x:Class="WpfApplication3.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid> 
    <!-- I want to use ResourceDictionary definitions here--> 
</Grid> 

Mainwindow.xamlguiLayout.xml의 그리드 정의를 사용할 수 있습니까?

편집 :이 같은 XAML에서 WindowContent을 설정할 수 있습니다

enter image description here

답변

2

이 프로젝트는 다음과 같습니다

:

<Window x:Class="WpfApplication3.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525" 
     Content="{StaticResource guiLayout}"> 
</Window> 

또는 사용 요소 구문 :

, 자원으로 저장 Grid에 대한 x:Shared를 사용하지 않고 그 Grid 만 1 윈도우 사용할 수 있는지 691,363,210은
<Window x:Class="WpfApplication3.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Window.Content> 
     <StaticResource ResourceKey="guiLayout"/> 
    </Window.Content> 
</Window> 

참고.

<Grid x:Key="guiLayout" x:Shared="false"> 
    <!-- ... --> 
</Grid> 

업데이트 : 자원을 가져 오려면이 코드를보십시오 : App.xaml에서

을 :

을 여러 개의 창을 위해 사용하려면이 같은 Grid에 대한 x:Shared="false"를 추가해야
<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="Resources\guiLayout.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources>  
+0

응답 해 주셔서 감사합니다. 두 가지 방법을 모두 시도했지만 '리소스'guiLayout '을 예외로 찾을 수 없습니다. – SanVEE

+0

@San '어디서 guiLayout.xaml을 가져 왔습니까? 가능한 경우 해당 코드를 게시하십시오. –

+0

아니요, 기본 프로젝트의 일부입니다. 제 편집 섹션을 참조하십시오. – SanVEE

관련 문제