ITPub博客

首页 > Linux操作系统 > Linux操作系统 > silverlight中FindResource方法使用

silverlight中FindResource方法使用

原创 Linux操作系统 作者:张国平 时间:2010-02-25 11:52:30 0 删除 编辑

 

在开发中,尝试着按照wpf的开发习惯,使用FindResource方法 查找资源,却发现无法调用这个方法。

查了查,是由于Silverlight FrameworkElement   不包含这个方法,看了看MSDN的说明:

  • Silverlight 不支持 FindResource API(不是严格意义上的 ResourceDictionary 问题,但是与总体用法有关)。

  • Silverlight 不支持 {DynamicResource}。如果要从 WPF 迁移 XAML,则可以将其转换为 {StaticResource},并在 ResourceDictionary 中定义它们,否则必须替换相关引用。同样,这也不是严格意义上的 ResourceDictionary 问题。

  • 在 WPF 中,模板的基类型 (FrameworkTemplate) 还具有一个 Resources 属性。Silverlight 版本的 FrameworkTemplate 不具有 Resources 属性。

  • 对应链接:http://msdn.microsoft.com/zh-cn/library/cc903952(VS.95).aspx

    这样来说,主要的原因是wpf的基模板有resources这个属性,可以使用FindResource,而silverlight的组件基模板,没有这个熟悉。没法调用。

    解决方法之一,使用FindName这个方法,可以返回查找。

    你可以用这个写成一个构造一个对应的findResource方法。

    public static object FindResource(string name)
            {
                if (App.Current.Resources.Contains(name))
                {
                    return App.Current.Resources[name];
                }
                else
                {
                    FrameworkElement root = App.Current.RootVisual as FrameworkElement;
                    return root.FindResource(name);
                }
            }
            internal static object FindResource(this FrameworkElement root, string name)
            {
                if (root != null && root.Resources.Contains(name))
                {
                    return root.Resources[name];
                }
                else
                {
                    try
                    {
                        return root.FindName(name);
                    }
                    catch { }               
                }

                return null;

    }

    上面的代码来自

    http://blogs.microsoft.co.il/blogs/tamir/archive/2008/03/25/findresource-replacement-and-how-to-change-control-style-more-then-once-in-silverlight-2-0-application.aspx

    我是自己使用findName,可以正常使用。。。

    看来wpf和silverlight之间区别还是很多呀。。。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22259926/viewspace-627803/,如需转载,请注明出处,否则将追究法律责任。

    请登录后发表评论 登录
    全部评论
    SAP 金融风险管理产品专家

    注册时间:2009-08-05

    • 博文量
      138
    • 访问量
      330708