当我尝试将资源样式从文件加载到UIElement时,我遇到了问题。 我的资源文件包含ToggleSwitch默认样式的副本,我只更改了一些颜色。 我尝试了以下资源引用:
<Page.Resources>
<ResourceDictionary x:Key="GreenToggleResourceDictionary">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="GreenToggleSwitch.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
我的ToggleSwitch看起来像这样,但它不会使用引用资源中的样式&#34; GreenToggleSwitch.xaml&#34;:
<ToggleSwitch x:Name="ToggleSwitch"
Style="{StaticResource GreenToggleSwitchStyle}"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Toggled="ToggleSwitch_Toggled"
</ToggleSwitch>
这是GreenToggleSwitch.xaml,它几乎是ToggleSwitch的默认模板:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:CUE">
<x:Double x:Key="ToggleSwitchOnStrokeThickness">0</x:Double>
<Style TargetType="ToggleSwitch" x:Key="GreenToggleSwitchStyle">
.
.
.
</Style>
</ResourceDictionary>
由于Style&#39; GreenToggleSwitch&#39;此代码无法正常工作。我想用。
代码是如何工作的?
基本上我想将切换拇指(/旋钮)周围的蓝色改为绿色。如果我将我的资源文件中的代码放入我的MainPage.xaml中,它将起作用。
感谢您的帮助, 尤
答案 0 :(得分:1)
是的,资源字典不是样式。你想要的风格的x:Key
属性是什么?用那个。如果是x:Key="Planxty"
,请使用Style="{StaticResource Planxty}"
。如果是x:Key="ImALittleTeapot"
,请使用Style="{StaticResource ImALittleTeapot}"
。
如果它没有键,则它是隐式样式,它应该适用而不需要你做任何进一步的努力。
其次,您应该将正在加载的字典合并到窗口/ page / usercontrol /中的字典中。
像这样:
<Page.Resources>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="GreenToggleSwitch.xaml"/>
</ResourceDictionary.MergedDictionaries>
</Page.Resources>
GreenToggleSwitchResource
未在任何地方定义。当你向它抛出奇怪的随机字符串时,XAML解析器不会试图猜测你的意图。它会说“Dammit,Jim,我是一名解析员,而不是一名超心理学家!”
使用您定义的标识符。这是编程。我们通过我们提供的标识符来调用它们。你称之为GreenToggleSwitchStyle
。这就是你如何引用它。
<ToggleSwitch x:Name="ToggleSwitch"
Style="{StaticResource GreenToggleSwitchStyle}"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Toggled="ToggleSwitch_Toggled"
</ToggleSwitch>
我不知道你对所有主题的内容是什么,你没有说,所以我没有解决这个问题。