Это последующая деятельность до Overriding button background in WPF on Aero и до некоторой степени Custom Control Styling/Triggers.Элемент управления/триггеры для индивидуального управления Часть II - Переопределение Aero
При попытке сохранить функциональность ToggleButton, но избавиться от стиля кнопки, я следил за процессом первой ссылки выше. Она в основном работает, хотя и с незначительной модификацией изменения RenderMouseOver
и RenderPressed
к false
(В противном случае он почуяв мышь находиться над любой точке окна, а не только тогда, когда над ToggleButton
.
Так что теперь моя проблема, с разметка ниже, триггер IsMouseOver
не меняет фон на всех. Есть идеи, глядя на XAML?
на стороне записки, я пытался использовать BitmapEffect
, чтобы буквы светятся при переключении, но независимо от того, какие настройки я использую, похоже, не имеет никакого эффекта. Кто-нибудь знает руководство, которое конкретно касается этого?
<Style TargetType="{x:Type local:TimePicker}">
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Height}" />
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Width}" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Background="{TemplateBinding Background}"
BorderBrush="Black"
BorderThickness="1">
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Center"
VerticalAlignment="{TemplateBinding VerticalAlignment}">
<ToggleButton VerticalAlignment="{TemplateBinding VerticalAlignment}"
Margin="0"
Background="{TemplateBinding Background}"
BorderBrush="Transparent"
Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Hour}">
<ToggleButton.Template>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Aero:ButtonChrome SnapsToDevicePixels="True"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
RenderMouseOver="False"
RenderPressed="False">
<ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
/>
</Aero:ButtonChrome>
</ControlTemplate>
</ToggleButton.Template>
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Background" Value="LightGray" />
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Foreground" Value="Red" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="BitmapEffect">
<Setter.Value>
<OuterGlowBitmapEffect GlowColor="Red" GlowSize="30" />
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
<Label HorizontalContentAlignment="{TemplateBinding HorizontalAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalAlignment}"
Content=":"/>
<ToggleButton VerticalAlignment="{TemplateBinding VerticalAlignment}"
Margin="0"
Background="{TemplateBinding Background}"
BorderBrush="Transparent"
Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Minute}" />
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Только что попробовал: не работал. Я пробовал это на каждом фоне заявления там и ничего. :) –
Если вы действительно заинтересованы в создании стилей и контрольных шаблонов, то проверьте этот сайт, полный примеров: http://msdn.microsoft.com/en-us/library/ms752043.aspx Я всегда избегал использования тем при условии, что Areo и другие 5 или 6, потому что они вас не учат :) – Silvermind
У меня возникло 2 проблемы с этим. Во-первых, функция OverridesDefaultStyle не устраняет проблему фонового наведения. Во-вторых, что касается эффекта размытия, VS не позволит мне установить TargetName в настройке стиля. Я не знаю, имеет ли это значение, но это внутри файла generic.xaml для настраиваемого элемента управления. О, и я действительно очень ценю помощь. –