微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

调整WPF材质设计图标的滴答声

如何解决调整WPF材质设计图标的滴答声

我有这个UI,它使用了漂亮的Material Design In XAML及其图标包。

Add user and delete image

我想调整图形线条的滴答声,使像本例中的小图标更细。

<ListBoxItem>
    <StackPanel Orientation="Horizontal">
        <materialDesign:PackIcon Kind="AccountsAddOutline" />
        <TextBlock Margin="10,0">Add user</TextBlock>
    </StackPanel>
</ListBoxItem>

<ListBoxItem>
    <StackPanel Orientation="Horizontal">
        <materialDesign:PackIcon Kind="DeleteForeverOutline" />
        <TextBlock Margin="10,0">Delete</TextBlock>
    </StackPanel>
</ListBoxItem>

我不知道该库的API是否公开此属性,但是可以确保滴答度是可调整的,因为如果您增大图标的大小,则该行也会变成滴答声,如下例所示:

<materialDesign:PackIcon Kind="AccountsAddOutline" Height="40" Width="40" />

结果:

ticker line in icon

解决方法

您无法真正调整厚度。 PackIcon的模板在Path中实现为ViewBox并对其进行拉伸和缩放:

<ControlTemplate TargetType="{x:Type local:PackIcon}">
    <Border Background="{TemplateBinding Background}" 
            BorderBrush="{TemplateBinding BorderBrush}"
            BorderThickness="{TemplateBinding BorderThickness}">
        <Viewbox FlowDirection="{TemplateBinding FlowDirection}">
            <Canvas Width="24" Height="24">
                <Path Data="{Binding Data,RelativeSource={RelativeSource TemplatedParent}}"                                   
                      Fill="{TemplateBinding Foreground}" />
            </Canvas>
        </Viewbox>
    </Border>
</ControlTemplate>

您可以通过创建没有Viewbox的自定义模板来摆脱扩展的麻烦。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。