Access variable in code-behind from Resources in UserControl

江枫思渺然 提交于 2019-12-11 04:27:42

问题


I have the following problem: I want to access one of these three vars, defined in XAML Resource

<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>

I want to access the value of "actualWidth" from Codebehind file like this:

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

But this doesn't work. Can someone help?


回答1:


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

similarly min value

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

to set value of a resource you can do like this

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



回答2:


I think you can use

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

or something similar.




回答3:


use like this

(int)this.FindResource("actualWidth")


来源:https://stackoverflow.com/questions/6017042/access-variable-in-code-behind-from-resources-in-usercontrol

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!