سيلفرلايت 4:XamlParseException عند محاولة الارتباط بالأنماط والموارد

StackOverflow https://stackoverflow.com/questions/3293952

سؤال

أنا أستخدم Silverlight 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؟

ملاحظة - أنا أستخدم سمة ExpressionDark...

شكرا لك مقدما،

مايك

هل كانت مفيدة؟

المحلول

لا أعتقد أنك بحاجة إلى مصدر ملزم جزء.

لقد استخدمت ما يلي

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

في الماضي ويعمل بشكل جيد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top