【问题标题】:Change XAML control from a different xaml file从不同的 xaml 文件更改 XAML 控件
【发布时间】:2014-04-24 14:08:52
【问题描述】:

我有 2 个 XAML 文件:MainPage.xaml 和 Settings.XAML

我想从 Settings.XAML 更改 MainPage.xaml LayoutRoot.Background 属性。做这个的最好方式是什么?

【问题讨论】:

    标签: c# xaml windows-phone-8


    【解决方案1】:

    创建资源字典。使用这些内容在您的项目中创建一个新的 xaml 文件(例如 Style.xaml)

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                        xmlns:vsm="clr-namespace:System.Windows;assembly=PresentationFramework">
    
        <Color x:Key="MainBackGroundColor">#F6F5E0</Color>
    </ResourceDictionary>
    

    像这样更新 App.xaml。顺便说一句,如果您想将设置拆分为不同的文件,您可以将每个文件放在此 MergedDictionaries 部分中。

    <Application x:Class="SonoCine.CineReader.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <Application.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="Style.xaml" />
                </ResourceDictionary.
            </ResourceDictionary>
    
        </Application.Resources>
    </Application>
    

    现在您应该可以像这样在 MainPage.xaml 中使用 MainBackGroundColor

    Background="{StaticResource MainBackGroundColor}"

    【讨论】:

    • 我对第一步有点困惑。我是否只是将代码复制粘贴到 xaml 文件中的某处?在哪里?顺便说一句,这就是我的 settings.xaml 的样子:pastebin.com/PMyPSDis
    • 您应该能够将 ResourceDictionary xml 剪切/粘贴到名为 Settings.xaml 的新文件中。对于 App.xaml 文件,您可以仅剪切/粘贴此 。 并将其放在 之间。然后对您的 xaml 执行此操作
    • 但是 Settings.xaml 文件已经存在。所以如果我删除它,那么我也会失去布局。
    • 我明白了。没有意识到您已经有一个 Settings.xaml。好的,为了更容易,可以创建一个名为 Style.xaml 的新 xaml 文件并将整个 ResourceDictionary 粘贴到 Style.xaml 中。在您的 App.xaml xml 中,而不是在 Source 属性上使用 Settings.xaml,使用 Style.xaml
    • 我照你说的做了。现在我的 App.xaml 看起来像这样:pastebin.com/0HWRs6Vd 但我遇到了一些错误。 - 错误 1 ​​成员“DispatcherUnhandledException”无法识别或不可访问。 - 错误 12 每个字典条目都必须有一个关联的键。
    猜你喜欢
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多