2010-09-08 2 views
2

Я следующий стиль определен ...WPF Styling граница толщины на спусковой крючок

<!-- Blue Button --> 
<Style x:Key="BlueButton" TargetType="{x:Type Button}"> 
    <Setter Property="OverridesDefaultStyle" Value="True"/> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="Button">     
    <Border Name="border" 
     BorderThickness="2" 
     Padding="4,2" 
     CornerRadius="5" 
     BorderBrush="{TemplateBinding BorderBrush}" 
     Background="{TemplateBinding Background}"> 
     <Grid > 
     <ContentPresenter 
     HorizontalAlignment="Center" 
     VerticalAlignment="Center" 
     Name="content"/> 
     </Grid> 
    </Border> 
    <ControlTemplate.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
     <Setter Property="Background" Value="{DynamicResource BlueGradientOver}"/> 
     <Setter Property="BorderBrush" Value="White"/> 
     </Trigger> 
     <Trigger Property="IsEnabled" Value="False"> 
     <Setter Property="Background" Value="Black"/> 
     <Setter Property="BorderBrush" Value="White"/> 
     <!-- how do I set the BorderThickness here? --> 
     <Setter Property="Foreground" Value="White"/> 
     </Trigger>    
     <Trigger Property="IsPressed" Value="True"> 
     <Setter Property="Background" Value="{DynamicResource BlueGradient4}"/> 
     <Setter Property="BorderBrush" Value="{DynamicResource BlueGradient1}"/> 
     </Trigger> 
    </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
    <Setter Property="SnapsToDevicePixels" Value="true"/> 
    <Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}"/> 
    <Setter Property="Background" Value="{DynamicResource BlueGradient1}"/> 
    <Setter Property="BorderBrush" Value="{DynamicResource BlueGradient2}"/> 
    <Setter Property="Foreground" Value="White"/> 
    <Setter Property="HorizontalContentAlignment" Value="Center"/> 
    <Setter Property="VerticalContentAlignment" Value="Center"/> 
    <Setter Property="TextBox.TextAlignment" Value="Center"/> 
    <Setter Property="FontFamily" Value="Trebuchet MS"/> 
    <Setter Property="FontSize" Value="15pt"/> 
    <Setter Property="Effect" Value="{DynamicResource KioskStandardDropShadow}" /> 
    <Setter Property="IsEnabled" Value="True"/> 
</Style> 

Я хотел бы изменить BorderThickness свойство, когда кнопка отключена, но я не могу понять, как это сделать Это.

+0

Почему голосовали это вниз? – ocodo

ответ

2

В шаблоне управления вы устанавливаете значение BorderThickness равным 2! Оно должно быть:

ОБНОВЛЕНО

<!-- Blue Button --> 
<Style x:Key="BlueButton" TargetType="{x:Type Button}"> 
    <Setter Property="OverridesDefaultStyle" Value="True"/> 
    <Setter Property="BorderThickness" Value="2" /> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="Button">      
    <Border Name="border" 
     BorderThickness="{TemplateBinding BorderThickness}" 
     Padding="4,2" 
     CornerRadius="5" 
     BorderBrush="{TemplateBinding BorderBrush}" 
     Background="{TemplateBinding Background}"> 
     <Grid > 
     <ContentPresenter 
     HorizontalAlignment="Center" 
     VerticalAlignment="Center" 
     Name="content"/> 
     </Grid> 
    </Border> 
    <ControlTemplate.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
     <Setter Property="Background" Value="{DynamicResource BlueGradientOver}"/> 
     <Setter Property="BorderBrush" Value="White"/> 
     </Trigger> 
     <Trigger Property="IsEnabled" Value="False"> 
     <Setter Property="Background" Value="Black"/> 
     <Setter Property="BorderBrush" Value="White"/> 
     <Setter Property="BorderThickness" Value="10" /> 
     <Setter Property="Foreground" Value="White"/> 
     </Trigger>    
     <Trigger Property="IsPressed" Value="True"> 
     <Setter Property="Background" Value="{DynamicResource BlueGradient4}"/> 
     <Setter Property="BorderBrush" Value="{DynamicResource BlueGradient1}"/> 
     </Trigger> 
    </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
    <Setter Property="SnapsToDevicePixels" Value="true"/> 
    <Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}"/> 
    <Setter Property="Background" Value="{DynamicResource BlueGradient1}"/> 
    <Setter Property="BorderBrush" Value="{DynamicResource BlueGradient2}"/> 
    <Setter Property="Foreground" Value="White"/> 
    <Setter Property="HorizontalContentAlignment" Value="Center"/> 
    <Setter Property="VerticalContentAlignment" Value="Center"/> 
    <Setter Property="TextBox.TextAlignment" Value="Center"/> 
    <Setter Property="FontFamily" Value="Trebuchet MS"/> 
    <Setter Property="FontSize" Value="15pt"/> 
    <Setter Property="Effect" Value="{DynamicResource KioskStandardDropShadow}" /> 
    <Setter Property="IsEnabled" Value="True"/> 
</Style> 
+0

Спасибо, как установить его на триггеры и значения по умолчанию? – ocodo

+1

триггер можно установить так, как ожидалось, -> rudigrobler

+1

И значение по умолчанию должно быть установлено в верхней части (где у вас есть OverridesDefaultStyle) - Как и то, как это делается в вызывать! – rudigrobler

0

Вы пробовали Expression Blend 4? Он имеет очень приятный интуитивный интерфейс для работы с поведениями, триггерами и действиями непосредственно на XAML. Вы должны попробовать! Создание всего этого кода, вероятно, займет у вас 5 минут (включая вашу границу).

+0

У меня есть это, но редактор настолько базовый, что я обычно использую Visual Studio & Emacs, я предпочитаю изучать синтаксис, а не полагаться на генерацию кода. - Но да, это очень хорошо для визуального материала. – ocodo

Смежные вопросы