.net – 样式化XAML滑块控件 – 如何在PointerOver上停止更改Thu
发布时间:2020-12-14 01:55:59 所属栏目:Windows 来源:网络整理
导读:我正在尝试使用XAML为一个Metro风格的应用程序重新设置Slider控件的样式 – 它应该看起来像一个红色的总线,用户沿着灰色条带拖动,即: 我使用Visual Studio提取了样式并重新设置了Slider控件的样式,如下所示. 不幸的是,每当我将鼠标悬停在滑块上时,拇指就会
我正在尝试使用XAML为一个Metro风格的应用程序重新设置Slider控件的样式 – 它应该看起来像一个红色的总线,用户沿着灰色条带拖动,即:
我使用Visual Studio提取了样式并重新设置了Slider控件的样式,如下所示. 我错过了什么? XAML在下面.如果我需要修改另一个模板(例如Thumb?),那么请提供有关如何提取此模板的步骤,因为除了下面的那个之外,Visual Studio似乎不再向我公开任何控件模板. ???? <Style x:Key="BusRouteSliderStyle" TargetType="Slider"> <Setter Property="Background" Value="{StaticResource SliderTrackBackgroundThemeBrush}"/> <Setter Property="BorderBrush" Value="{StaticResource SliderBorderThemeBrush}"/> <Setter Property="BorderThickness" Value="{StaticResource SliderBorderThemeThickness}"/> <Setter Property="Foreground" Value="{StaticResource SliderTrackDecreaseBackgroundThemeBrush}"/> <Setter Property="ManipulationMode" Value="None"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Slider"> <Grid Margin="{TemplateBinding Padding}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal"/> <VisualState x:Name="Pressed"> <Storyboard> </Storyboard> </VisualState> <VisualState x:Name="Disabled"> <Storyboard> </Storyboard> </VisualState> <VisualState x:Name="PointerOver"> <Storyboard> </Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="FocusStates"> <VisualState x:Name="Focused"> <Storyboard> <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualWhiteHorizontal"/> <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualBlackHorizontal"/> <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualWhiteVertical"/> <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualBlackVertical"/> </Storyboard> </VisualState> <VisualState x:Name="Unfocused"/> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Grid x:Name="HorizontalTemplate" Background="Transparent"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="17"/> <RowDefinition Height="30"/> <RowDefinition Height="32"/> </Grid.RowDefinitions> <Rectangle x:Name="HorizontalTrackRect" Grid.ColumnSpan="3" Fill="LightGray" Grid.Row="1" Height="10" VerticalAlignment="Bottom"/> <Rectangle x:Name="HorizontalDecreaseRect" Height="0" /> <TickBar x:Name="TopTickBar" Grid.ColumnSpan="3" Fill="{StaticResource SliderTickmarkOutsideBackgroundThemeBrush}" Height="{StaticResource SliderOutsideTickBarThemeHeight}" Margin="0,2" Visibility="Collapsed" VerticalAlignment="Bottom"/> <TickBar x:Name="HorizontalInlineTickBar" Grid.ColumnSpan="3" Fill="{StaticResource SliderTickMarkInlineBackgroundThemeBrush}" Height="{StaticResource SliderTrackThemeHeight}" Grid.Row="1" Visibility="Collapsed"/> <TickBar x:Name="BottomTickBar" Grid.ColumnSpan="3" Fill="{StaticResource SliderTickmarkOutsideBackgroundThemeBrush}" Height="{StaticResource SliderOutsideTickBarThemeHeight}" Margin="0,2,0" Grid.Row="2" Visibility="Collapsed" VerticalAlignment="Top"/> <Rectangle x:Name="HorizontalBorder" Grid.ColumnSpan="3" Grid.Row="1" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}"/> <Thumb x:Name="HorizontalThumb" Grid.Column="1" DataContext="{TemplateBinding Value}" Width="40" Height="30" Grid.Row="1" > <Thumb.Background> <ImageBrush ImageSource="/Assets/bus_thumb.png" /> </Thumb.Background> </Thumb> <Rectangle x:Name="FocusVisualWhiteHorizontal" Grid.ColumnSpan="3" IsHitTestVisible="False" Opacity="0" Grid.RowSpan="3" StrokeDashOffset="1.5" StrokeEndLineCap="Square" Stroke="{StaticResource FocusVisualWhiteStrokeThemeBrush}" StrokeDashArray="1,1"/> <Rectangle x:Name="FocusVisualBlackHorizontal" Grid.ColumnSpan="3" IsHitTestVisible="False" Opacity="0" Grid.RowSpan="3" StrokeDashOffset="0.5" StrokeEndLineCap="Square" Stroke="{StaticResource FocusVisualBlackStrokeThemeBrush}" StrokeDashArray="1,1"/> </Grid> <Grid x:Name="VerticalTemplate" Background="Transparent" Visibility="Collapsed"> <Grid.ColumnDefinitions> <ColumnDefinition Width="17"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="17"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Rectangle x:Name="VerticalTrackRect" Grid.Column="1" Fill="{TemplateBinding Background}" Grid.RowSpan="3"/> <Rectangle x:Name="VerticalDecreaseRect" Grid.Column="1" Fill="{TemplateBinding Foreground}" Grid.Row="2"/> <TickBar x:Name="LeftTickBar" Fill="{StaticResource SliderTickmarkOutsideBackgroundThemeBrush}" HorizontalAlignment="Right" Margin="0,0" Grid.RowSpan="3" Visibility="Collapsed" Width="{StaticResource SliderOutsideTickBarThemeHeight}"/> <TickBar x:Name="VerticalInlineTickBar" Grid.Column="1" Fill="{StaticResource SliderTickMarkInlineBackgroundThemeBrush}" Grid.RowSpan="3" Visibility="Collapsed" Width="{StaticResource SliderTrackThemeHeight}"/> <TickBar x:Name="RightTickBar" Grid.Column="2" Fill="{StaticResource SliderTickmarkOutsideBackgroundThemeBrush}" HorizontalAlignment="Left" Margin="2,0" Grid.RowSpan="3" Visibility="Collapsed" Width="{StaticResource SliderOutsideTickBarThemeHeight}"/> <Rectangle x:Name="VerticalBorder" Grid.Column="1" Grid.RowSpan="3" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}"/> <Thumb x:Name="VerticalThumb" Background="{StaticResource SliderThumbBackgroundThemeBrush}" Grid.Column="1" DataContext="{TemplateBinding Value}" Height="{StaticResource SliderTrackThemeHeight}" Grid.Row="1" Width="{StaticResource SliderTrackThemeHeight}"/> <Rectangle x:Name="FocusVisualWhiteVertical" Grid.ColumnSpan="3" IsHitTestVisible="False" Opacity="0" Grid.RowSpan="3" StrokeDashOffset="1.5" StrokeEndLineCap="Square" Stroke="{StaticResource FocusVisualWhiteStrokeThemeBrush}" StrokeDashArray="1,1"/> <Rectangle x:Name="FocusVisualBlackVertical" Grid.ColumnSpan="3" IsHitTestVisible="False" Opacity="0" Grid.RowSpan="3" StrokeDashOffset="0.5" StrokeEndLineCap="Square" Stroke="{StaticResource FocusVisualBlackStrokeThemeBrush}" StrokeDashArray="1,1"/> </Grid> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </UserControl.Resources> <Grid> <Grid.RowDefinitions> <RowDefinition Height="50" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Slider x:Name="busSlider" Width="220" Height="50" Minimum="0" Maximum="100" Value="0" Orientation="Horizontal" IsEnabled="True" Style="{StaticResource BusRouteSliderStyle}" /> <TextBlock x:Name="lblSliderStopInfo" Grid.Row="1" Foreground="White" FontSize="12" Text ="{Binding ElementName=slider,Path=Value}" /> </Grid> 解决方法
您可能还需要更改Thumb控件的样式/模板.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2008 – 新颖的eDirectory和Windows XP / S
- 单个.msi Windows软件包安装程序文件的最大大小是多少?
- windows-server-2003 – 多个VLAN,多个子网,单个DHCP服务器
- windows – 如何在不禁用子控件功能的情况下从客户区拖动表
- 在Windows 2016上安装NFS服务时出错
- Windows Phone 8.1:使用IList变量的C#回调无法转换为IVect
- 将同一台计算机重新加入Windows域,无需域管理员权限
- Windows 定时删除指定路径下N天前的日志文件
- 唤醒用于Windows的Lan工具?
- windows-7 – 自动安装Microsoft Update实用程序
推荐文章
站长推荐
- 用NSSM把.Net Core部署至 Windows 服务
- 使用Windows XP,Qt Creator 4.5.2(Windows 32位)
- window下文件在Linux下文件乱码解决
- Windows Phone 7应用程序沙盒安全性(用户上下文,
- Windows与Linux上的文件创建时间
- windows-phone-7 – 如何删除IE移动浏览器的点击
- windows – 你应该多久对一台服务器进行碎片整理
- windows – 完全禁用Hyper-V VM中的日期和时间同
- ms-access – 为什么Microsoft Access表单会为一
- windows-server-2008 – Windows Update代理更新
热点阅读