寻找Office 2007样式缩放滑块模板

时间:2009-11-03 02:08:01

标签: wpf slider controltemplate

有没有人看过Office 2007风格缩放滑块的好模板?

如图所示 alt text http://www.theexceladdict.com/images/zoom_controls_excel_2007_2003.jpg

1 个答案:

答案 0 :(得分:1)

这样的事情很容易创造。

首先创建按钮样式:

  <Style x:Key="ZoomIncreaseDecreaseStyle" TargetType="{x:Type RepeatButton}">
    <Setter Property="OverridesDefaultStyle" Value="true" />
    <Setter Property="IsTabStop" Value="false" />
    <Setter Property="Focusable" Value="false" />
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type RepeatButton}">
          <Grid>
            <Ellipse Stroke="Gray" x:Name="Ellipse">
              <Ellipse.Fill>
                <RadialGradientBrush ... />
              </Ellipse.Fill>
            </Ellipse>
            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
          </Grid>
          <ControlTemplate.Trigger>
            <Trigger Property="IsMouseOver" Value="true">
              <Setter TargetName="Ellipse" Property="Fill">
                <RadialGradientBrush ... />
              </Setter>
            </Trigger>
          </ControlTemplate.Trigger>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  <Style>

然后修改Blend中的ControlTemplate(创建副本),并在&lt; Grid&gt;周围添加类似的东西:

  <DockPanel>
    <RepeatButton
      DockPanel.Dock="Left"
      Command="{x:Stastic Slider.DecreaseLarge}"
      ControlTemplate="{StaticResource ZoomIncreaseDecreaseStyle}">
      <Path Data="{StaticResource MinusGeometry}" />
    </RepeatButton>
    <RepeatButton
      DockPanel.Dock="Right"
      Command="{x:Stastic Slider.IncreaseLarge}"
      ControlTemplate="{StaticResource ZoomIncreaseDecreaseStyle}">
      <Path Data="{StaticResource PlusGeometry}" />
    </RepeatButton>

    <Grid>
      ...

您可以使用按钮笔触颜色,渐变填充以及+和 - 路径来按照您希望的方式进行操作。我假设实际的Office 2007按钮受版权保护,因此您可能无法在没有侵权的情况下过于复制它们。但这会给你一些视觉上非常相似的东西。