Silverlight: Почему этот стиль работает в одном месте, а не в другом? - PullRequest
0 голосов
/ 11 декабря 2010

У меня есть стиль в моем Application.Resources:

    <Style x:Name="TransparentBackground" TargetType="Border">
        <Setter Property="Background" Value="AntiqueWhite" />
        <Setter Property="Opacity" Value=".6" />
        <Setter Property="Padding" Value="5" />
    </Style>

Я применил его в двух местах.Во-первых, это работает:

<UserControl.Resources>
    <DataTemplate x:Key="FileTemplate">
            <Border Style="{StaticResource TransparentBackground}">
                <TextBlock TextWrapping="Wrap">
                    <Run Text="{Binding Name, FallbackValue='File Name'}" FontWeight="Bold" />
                    <Run Text="." Foreground="#787878" FontWeight="Light" />
                    <Run Text="{Binding TypeExtension, FallbackValue='type'}" Foreground="#787878" FontWeight="Light" />
                </TextBlock>
            </Border>
    </DataTemplate>
</UserControl.Resources>

Когда я, что DataTemplate рендеринг, выглядит великолепно.Однако, когда я использую стиль внутри LayoutRoot, он терпит неудачу:

        <Border Style="{StaticResource TransparentBackground}">
            <TextBlock x:Name="searchResultsFoundCountText" />
        </Border>

Цвет фона серый вместо AntiqueWhite, а непрозрачность 1 вместо .6.Тем не менее, кажется, что padding работает.Почему это может происходить?

Я использую Silverlight 4.

1 Ответ

0 голосов
/ 11 декабря 2010

Вы устанавливаете свойства, используя установщик стиля.Этот способ имеет небольшой приоритет (8-е место).

  1. Устанавливается по принуждению системой свойств.
  2. Устанавливается активными или удерживаемыми анимациями.
  3. Устанавливается локальнолибо по коду, либо путем прямой настройки в XAML, либо с помощью привязки данных.
  4. Устанавливается с помощью TemplatedParent.
  5. Неявный стиль - применяется только к свойству Style.
  6. Установить с помощью триггеров стиля.
  7. Установить с помощью триггеров шаблона.
  8. Установить с помощью установщиков стиля.
  9. Устанавливается по умолчанию в стиле.
  10. Устанавливается по наследству.
  11. Устанавливается по метаданным

Но у вас есть Silverlight без триггеров, и ваш код не содержит шаблонов, поэтому возможный ответ может бытьустановщик кода (3-й) или анимация (2-й).

Также ваш стиль хорошо работает в корневом пользовательском элементе управления MainPage.xaml.

Вот msdn статья о приоритете свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...