从UserControl中的Resources访问代码隐藏变量

时间:2011-05-16 12:02:33

标签: c# wpf xaml resourcedictionary

我有以下问题: 我想访问在XAML资源

中定义的这三个变量之一
<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="../../Themes/MainStyle.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <System:Int32 x:Key="maxVal">500</System:Int32>
        <System:Int32 x:Key="minVal">250</System:Int32>
        <System:Int32 x:Key="actualWidth">250</System:Int32>
    </ResourceDictionary>
</UserControl.Resources>

我想从Codebehind文件中访问“actualWidth”的值,如下所示:

private void MinMaxGraphicsMessageSink(bool minmax)
{
   actualWidth = minmax ? 900 : 300;
}

但这不起作用。 有人可以帮忙吗?

3 个答案:

答案 0 :(得分:4)

int maxVal = (Convert.ToInt32(FindResource("maxVal")));

同样的最小值

int minVal = (Convert.ToInt32(FindResource("minVal")));

设置您可以像这样做的资源的值

var resourceDictionary = this.Resources;
resourceDictionary["actualWidth"] = somevalue;

答案 1 :(得分:0)

我认为你可以使用

var max = (int)Application.Resources["maxValue"];

或类似的东西。

答案 2 :(得分:0)

像这样使用

(int)this.FindResource("actualWidth")