2

我刚刚使用根据 IsChecked 所述设置图像内容的 ControlTemplates 实现了这些 ToggleButtons。这些图像是在 Photoshop 中制作的,但我希望它们作为 WPF 矢量。

当 IsChecked=False 时,按钮如下所示:

替代文字

当 IsChecked=True 我只是用另一个 PNG 替换图像:

替代文字

我在 Photoshop 中设计了按钮图像。它们具有以下图像层:

  • 半透明形状(边缘按钮有两个圆角的正方形)
  • 分割线的半透明线
  • 图标
  • 文本
  • 玻璃反射效果的半透明渐变

我认识到这不是最灵活的设计,我宁愿使用矢量形式的相同按钮,但我不知道该怎么做。

这是其中一个按钮的 xaml(请随意提出有关如何实现按钮的其他替代方案):

    <ControlTemplate x:Key="ResetButtonTemplate" TargetType="{x:Type ToggleButton}">
        <Image x:Name="ImageReset" Source="images\button_reset_gray.png"/>
        <ControlTemplate.Triggers>
            <Trigger Property="IsChecked" Value="False">
                <Setter Property="Cursor" Value="Hand" />
            </Trigger>
            <Trigger Property="IsChecked" Value="True">
                <Setter TargetName="ImageReset" Property="Source" Value="images\button_reset_red.png"/>
                <Setter Property="IsEnabled" Value="False" />
                <Setter Property="Cursor" Value="Arrow" />
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>


        <StackPanel Orientation="Horizontal" Margin="20">
            <ToggleButton Name="buttonRun" Width="102" Height="102" Template="{StaticResource RunButtonTemplate}" Checked="buttonRun_Checked" />
            <ToggleButton Name="buttonPause" Width="102" Height="102" Template="{StaticResource PauseButtonTemplate}" Checked="buttonPause_Checked" />
            <ToggleButton Name="buttonReset" Width="102" Height="102" Template="{StaticResource ResetButtonTemplate}" Checked="buttonReset_Checked" />
        </StackPanel>
4

1 回答 1

1

尝试查看 Expression Studio。套件中的一些应用程序能够导入 Photoshop 格式。

尽管在最坏的情况下,在 Blend 中手动创建此类图像并不是什么大问题。

于 2010-02-09T22:38:43.550 回答