Silverlight 4:尝试绑定样式和资源时出现 XamlParseException

发布于 2024-09-11 04:14:26 字数 1459 浏览 5 评论 0原文

我正在使用 Silverlight 4,并且正在尝试集成 4 月份的 Silverlight 4 工具包中的主题之一。

我的 App.xaml 内容如下:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Themes/System.Windows.Controls.Theming.ExpressionDark.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

当我的主窗口显示

<Grid x:Name="LayoutRoot" Background="{Binding Source={StaticResource ThemeBackgroundBrush}}">
    <TextBlock Text="Test" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{Binding Source={StaticResource ThemeForegroundBrush}}" />
</Grid>

“它工作正常”时。但是我想使用资源,所以我继续执行以下操作

<Grid x:Name="LayoutRoot" Background="{Binding Source={StaticResource ThemeBackgroundBrush}}">
    <Grid.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="Foreground" Value="{Binding Source={StaticResource ThemeForegroundBrush}}" />
        </Style>
    </Grid.Resources>
    <TextBlock Text="Test" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>

它失败了:-(

我尝试将资源样式放置在其他地方,例如 App.xaml 等。

任何人都知道我如何使用资源,所以我不这样做必须为每个 TextBlock 指定前景吗?

PS - 我正在使用 ExpressionDark 主题...

提前致谢,

迈克

I am using Silverlight 4 and I am trying to integrate one of the themes from the Silverlight 4 toolkit from April.

My App.xaml reads as follows:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Themes/System.Windows.Controls.Theming.ExpressionDark.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

When my main window reads

<Grid x:Name="LayoutRoot" Background="{Binding Source={StaticResource ThemeBackgroundBrush}}">
    <TextBlock Text="Test" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{Binding Source={StaticResource ThemeForegroundBrush}}" />
</Grid>

It works perfectly. However I would like to use resources so I went ahead and did the following

<Grid x:Name="LayoutRoot" Background="{Binding Source={StaticResource ThemeBackgroundBrush}}">
    <Grid.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="Foreground" Value="{Binding Source={StaticResource ThemeForegroundBrush}}" />
        </Style>
    </Grid.Resources>
    <TextBlock Text="Test" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>

It fails :-(

I have tried to place the resource style in other places like the App.xaml etc.

Anyone know how I can use resources so I don't have to specify the foreground for each TextBlock?

PS - I am using the ExpressionDark theme...

Thanks in Advance,

Mike

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

§对你不离不弃 2024-09-18 04:14:26

我不认为您需要绑定源部分。

使用过以下方法并且效果很好。

<Setter Property="Foreground" Value="{StaticResource ThemeForegroundBrush}" />

我过去

I don't believe that you need the Binding Source part.

I have used the following

<Setter Property="Foreground" Value="{StaticResource ThemeForegroundBrush}" />

in the past and it works well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文