Home > Enterprise >  How to scale an svg image inserted using DrawingBrush
How to scale an svg image inserted using DrawingBrush

Time:12-14

Is there a way to scale an svg image inserted using DrawingBrush as in the following code?

<Style x:Key="HamburgerMenuItemStyle" TargetType="{x:Type MenuItem}">
    <Setter Property="Template" Value="{StaticResource MenuItemControlTemplate1}"/>
    <Setter Property="Icon">
        <Setter.Value>
            <DrawingImage>
                <DrawingImage.Drawing>
                    <GeometryDrawing Geometry="M6 36v-3h36v3Zm0-10.5v-3h36v3ZM6 15v-3h36v3Z"
                                     Brush="Red"/>
                </DrawingImage.Drawing>
            </DrawingImage>
        </Setter.Value>
    </Setter>
</Style>

CodePudding user response:

According to your description, I think you should code as below:

<Style x:Key="HamburgerMenuItemStyle" TargetType="{x:Type MenuItem}">
<Setter Property="Template" Value="{StaticResource MenuItemControlTemplate1}"/>
<Setter Property="Icon">
    <Setter.Value>
        <Image Stretch="UniformToFill" Width="auto" Height="auto" HorizontalAlignment="Left">
            <Image.Source>
                <DrawingImage>
                    <DrawingImage.Drawing>
                        <GeometryDrawing Geometry="M6 36v-3h36v3Zm0-10.5v-3h36v3ZM6 15v-3h36v3Z" Brush="Red"/>
                    </DrawingImage.Drawing>
                </DrawingImage>
            </Image.Source>
        </Image>
    </Setter.Value>
</Setter>
</Style>

Note: Since I didn't have the Template property, I removed it. If you have problems displaying the icon despite this property, you should check it.

Also, if you are not sensitive to the use of Drawing Image, you can use the Path tag

<Path Stretch="Fill" Height="30" Width="30" Data="M6 36v-3h36v3Zm0-10.5v-3h36v3ZM6 15v-3h36v3Z" Fill="Red"></Path>
  •  Tags:  
  • wpf
  • Related