如何在Xamarin中创建ResourceDictionary?

时间:2017-07-24 13:02:10

标签: xamarin xamarin.forms

我想尝试这个例子:

public class App : Application
{
    public App ()
    {
        var buttonStyle = new Style (typeof(Button)) {
            Setters = {
                ...
                new Setter { Property = Button.TextColorProperty,   Value = Color.Teal }
            }
        };

        Resources = new ResourceDictionary ();
        Resources.Add ("buttonStyle", buttonStyle);
        ...
    }
    ...
}

Global Styles

但它不起作用/识别new ResourceDictionary()。有谁知道我可能做错了什么?

4 个答案:

答案 0 :(得分:1)

您在资源文件

中创建类
namespace MyNameSpace.Resources
{
    public static class Styles
    {
        public static Style ButtonStyle = new Style(typeof(Button))
        {
            Setters = {
                new Setter { Property = Button.TextColorProperty,   Value = Color.Teal }

            }
        };
    }
}

在xaml.cs文件中,您可以直接使用

MyBtn.Style = Styles.ButtonStyle; 

答案 1 :(得分:1)

应用程序应该已经有一个资源字典,尤其是在XAML中定义的时候。

检查exports.getCourses = (req, res) => { models.Course.find().sort('code').lean().exec((err, courses) => { res.render('admin/pages/courses', { bodyClass: 'courses', title: 'Courses', courses: _.filter(courses, course => { return req.user.hasRole('admin') || course.instructors.indexOf(req.user.id) !== -1 || course.teachingAssistants.indexOf(req.user.id) !== -1; }) }); }); }; 是否为空

检查Resources是否为空

如果两者都为空,则可以创建Application.Current.Resources,您可能需要包含new ResourceDictionary()

答案 2 :(得分:1)

您也可以将setter添加到样式的Setters集合中。 PCL中的代码:

        using Xamarin.Forms; 

        .....
        this.Resources = new ResourceDictionary();
        var style = new Style(typeof(Button));
        style.Setters.Add(new Setter { Property = Button.TextColorProperty,   Value = Color.Teal });

        Resources.Add("MyButtonStyle", style);

答案 3 :(得分:0)

您需要实现资源字典。

像这样创建一个类:

public class MyResourceDictionary : ResourceDictionary
{

}

然后在您的代码中,您应该能够:

Resources = new MyResourceDictionary();
Resources.Add("ButtonStyle",buttonStyle);