Reference custom resource defined in another xaml file

前端 未结 2 827
后悔当初
后悔当初 2020-12-28 08:42

I am trying to create a new resource in one xaml file and reference it in another xaml file. i.e I define


    

        
相关标签:
2条回答
  • 2020-12-28 09:03

    You should define this in the app.xaml file. These resources are shared throughout the entire project

    0 讨论(0)
  • 2020-12-28 09:21

    In WPF, the resource references works as a tree. Each control have resource, and children control can access parent's resources. The global application resource dictionary is in the App.xaml file. In this file you can include several resource dictionaries as a Merged Dictionary. See this code sample:

    <?xml version="1.0" encoding="utf-8"?>
    <Application ...>
        <Application.Resources>
            <ResourceDictionary>
                <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="View\SomeFileDictionary.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>
    </Application>
    

    The SomeFileDictionary.xaml is located in the View folder of my project structure. And has looks like this:

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:ViewModel="clr-namespace:Cepha.ViewModel"
                    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                    ... >
    
    <DataTemplate DataType="{x:Type ViewModel:SomeType}">
        <TextBox .../>
    </DataTemplate>...
    

    And each dictionary key or data template defined in this file (or App.xaml), can be referenced in any place of your project. Hope this helps...

    0 讨论(0)
提交回复
热议问题