wpf 如何用图像替换visual studio扩展中的默认按钮样式?

2vuwiymt  于 2023-08-07  发布在  其他
关注(0)|答案(2)|浏览(128)

我试图删除默认按钮样式在visual studio扩展和替换它与图像。确切地说,我试图使我的按钮看起来像图像,而不是像通常做的所有其他扩展按钮等。
在预览中,我可以看到正确的图像和所有的风格被删除。但当我开始调试图像就消失了。
有什么办法可以补救吗?

<UserControl x:Class="TabsGroupper.TabsGroupperToolControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:imaging="clr-namespace:Microsoft.VisualStudio.Imaging;assembly=Microsoft.VisualStudio.Imaging"
             xmlns:theming="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Imaging"
             xmlns:util="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Utilities"
             xmlns:catalog="clr-namespace:Microsoft.VisualStudio.Imaging;assembly=Microsoft.VisualStudio.ImageCatalog"
             xmlns:toolkit="clr-namespace:Community.VisualStudio.Toolkit;assembly=Community.VisualStudio.Toolkit"
             mc:Ignorable="d"
             d:DesignHeight="300"
             d:DesignWidth="300"
             Name="TabGroupperWindow" 
             FontFamily="Segoe UI">
    <Grid Background="#e8ecf4">
        <Grid.Resources>
            <Style x:Key="IconButtonStyle" TargetType="Button">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <Border Background="{TemplateBinding Background}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            BorderThickness="{TemplateBinding BorderThickness}"
                            Padding="{TemplateBinding Padding}">
                                <Image Source="pack://application:,,,/TabsGroupper;component/Resources/Delete.png" Width="16" Height="16" />
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Grid.Resources>
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="3">
            <Button Name="RemoveItemBtn" Style="{StaticResource IconButtonStyle}"></Button>
        </StackPanel>
    </Grid>
</UserControl>

字符串
尝试结果为零:

  • 将图像设置为内容
  • 使用imagebrush设置背景
  • 设置图像的绝对路径
  • 将映像构建操作设置为“资源”。
  • 重新启动VS
  • VS实验示例的重置
2w2cym1i

2w2cym1i1#

在ControlTemplate中,我尝试作为图像源

Source="pack://application:,,,/Delete.png"

字符串
在项目目录中有png文件,它对我很有效...

s71maibg

s71maibg2#

<Image Source="pack://application:,,,/TabsGroupper;component/Resources/Delete.png">

字符串
这个变体工作,问题是关于图像。要使其在映像的属性中工作构建操作应设置为资源。此外,如果有多个图像,则每个图像都应该有Build Action作为**Resource*。

相关问题