您如何将.svg用作System.Windows.Media.ImageSource?

时间:2019-02-27 20:28:39

标签: .net wpf xaml svg

我正在尝试使用.svg作为复选框的图标。尝试执行此操作时出现运行时错误。如果有人可以帮助我,将不胜感激。

错误:

  

System.Windows.Markup.XamlParseException:'无法投射以下对象   输入'System.Windows.Controls.Image'进行输入   'System.Windows.Media.ImageSource'。']

        <Image x:Key="DefaultState" Source="Images/defaultState.svg"></Image>
        <Image x:Key="Selected" Source="Images/selected.svg"></Image>
        <Image x:Key="OnHover" Source="Images/onHover.svg.svg"></Image>


        <Style TargetType="{x:Type CheckBox}" x:Key="GreenCheckBox">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type CheckBox}">
                        <StackPanel Orientation="Horizontal">
                            <Image x:Name="checkboxImage" Source="{DynamicResource DefaultState}" Width="15"/>
                            <ContentPresenter/>
                        </StackPanel>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsChecked" Value="True">
                                <Setter TargetName="checkboxImage" Property="Source" Value="{DynamicResource Selected}"/>
                            </Trigger>
                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="IsMouseOver" Value="True"/>
                                    <Condition Property="IsChecked" Value="False"/>
                                </MultiTrigger.Conditions>
                                <Setter TargetName="checkboxImage" Property="Source" Value="{DynamicResource OnHover}"/>
                            </MultiTrigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

0 个答案:

没有答案