绑定和样式不适用于Win8?

时间:2013-08-15 18:57:04

标签: xaml windows-8 windows-runtime windows-store-apps winrt-xaml

我从TextBox派生并称之为MyTextBox。 在我的LayoutAwarePage上,我创建了2个SolidColorBrush道具:MyBackground和MyBorder。 在该页面的Xaml中,我为控件MyTextBox编写了一个带有样式的ResourceDictionary:

 <Grid.Resources>
        <ResourceDictionary>
            <Style TargetType="a:MyTextBox">
                <Setter Property="Background" Value="{Binding MyBackground}"></Setter>
                <Setter Property="BorderBrush" Value="{Binding MyBorder}"></Setter>
                <Setter Property="Width" Value="200"></Setter>
                <Setter Property="IsReadOnly" Value="False"></Setter>
                <Setter  Property="BorderBrush" Value="3"></Setter>
            </Style>
        </ResourceDictionary>
    </Grid.Resources>

当我运行此页面时,我看不到控件。 我没有忘记为页面创建一个DataContext,属性是真彩色(不是黑色)。 知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

WinRT不支持样式设置器中的绑定。

答案 1 :(得分:-1)

<Grid.Resources>
        <ResourceDictionary>
            <Style TargetType="a:MyTextBox">
                <Setter Property="Background" Value="{StaticResource MyBackground}"></Setter>
                <Setter Property="BorderBrush" Value="{StaticResource MyBorder}"></Setter>
                <Setter Property="Width" Value="200"></Setter>
                <Setter Property="IsReadOnly" Value="False"></Setter>
                <Setter  Property="BorderBrush" Value="3"></Setter>
            </Style>
        </ResourceDictionary>
    </Grid.Resources>

试试这个

在App.xaml里面做 <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Common/StandardStyles.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary>

在你的公共目录中创建一个名为标准样式的文件并在那里声明你的画笔(你可以在那里声明一切