WPF, игнорирующий стиль ProgressBar - PullRequest
0 голосов
/ 14 июня 2010

После проблемы в WPF 4, где к шаблону ProgressBar по умолчанию применяется не совсем белый цвет, из-за чего он притупляет цвет переднего плана, я решил извлечь шаблон и вручную отредактировать значения до белого.* После этого я поместил шаблон как стиль в App.xaml для глобального использования, и дизайнер Visual Studio сразу начал использовать его.

Однако, когда я запускаю свое приложение, стиль по умолчанию все еще остаетсяприменяется:

Сверху - приложение, снизу - дизайнербез стиля переноса для определенного индикатора выполнения, и он все еще игнорируется.

Что не так?

Текущий код для ProgressBar:

 <ProgressBar Grid.Column="1"
              Grid.Row="2"
              Height="15"
              Width="355"
              Margin="0,0,0,7"
              IsIndeterminate="{Binding ProgressState, FallbackValue=False}"
              Visibility="{Binding ProgressVisibility, FallbackValue=Collapsed}"
              Value="{Binding ProgressValue, Mode=OneWay, FallbackValue=100}"
              Foreground="{Binding ProgressColor,FallbackValue=Red}">
        <ProgressBar.Template>
            <ControlTemplate>
                <Grid Name="TemplateRoot"
                      SnapsToDevicePixels="True">
                    <Rectangle RadiusX="2"
                               RadiusY="2"
                               Fill="{TemplateBinding Panel.Background}" />
                    ...

Ответы [ 2 ]

1 голос
/ 14 июня 2010

Я нашел ошибку, в которую верю. Кажется, что, хотя шаблон был извлечен из версии сборки. Произошла какая-то ошибка со следующим триггером в шаблоне:

<Trigger Property="ProgressBar.IsIndeterminate">
    <Setter Property="Panel.Background"
            TargetName="Animation">
        <Setter.Value>
            <SolidColorBrush>#80B5FFA9</SolidColorBrush>
        </Setter.Value>
    </Setter>
    <Trigger.Value>
        <s:Boolean>False</s:Boolean>
    </Trigger.Value>
</Trigger>

Как только я убрал этот триггер (который не оказал видимого влияния на визуальные эффекты), шаблон начал работать.

0 голосов
/ 14 июня 2010

Просто чтобы быть уверенным.Вы привязываете внутренний Rectangle к свойству Background, пока оно не задано в определении ProgressBar (только Foreground)Это правильно?

...