使用.dll或.exe合并图像

时间:2013-09-15 13:26:56

标签: c# wpf resources

我在XAML中使用10-20个图像,我不想用所有文件分发应用程序。我读过引用this questionthis article。它解释了如何使用嵌入式资源。问题是它似乎使用反射后面的资源代码。在我的情况下,我以这种方式声明了我的图像:

<Rectangle Width="30" Visibility="{Binding IsChecked, ElementName=maxCheck, Converter={StaticResource BoolVisConverter}}" Margin="-1 0 0 0">
 <Rectangle.Fill>
           <ImageBrush ImageSource="../Images/max.jpg" Stretch="Uniform"/>                  </Rectangle.Fill>
   </Rectangle>

我也有一个SplashScreen,我想在其他人之间合并。如果可能的话,我也希望包含图标。

我经常搜索,但仍无法找到解决此问题的简单方法。理想的情况是能够在单个.exe中合并执行程序所需的所有文件。那是因为我希望这个程序可以移动,用户在共享程序时会很容易忘记复制一些文件。

是否有任何指南,技巧或其他任何方法来实现这一目标?非常感谢你。

我正在使用VS2012并以.NET 4为目标

1 个答案:

答案 0 :(得分:1)

在XAML和WPF中使用Resource图像(相对)很容易。阅读Pack URIs。将您的图片标记为Solution Explorer Resource(不是Embedded Resource),并使用包URI引用它们。例如:

<Rectangle Width="30"
           Visibility="{Binding IsChecked, ElementName=maxCheck, Converter={StaticResource BoolVisConverter}}"
           Margin="-1 0 0 0">
    <Rectangle.Fill>
        <ImageBrush ImageSource="pack://application:,,,/Images/max.jpg"
                    Stretch="Uniform"/>
    </Rectangle.Fill>
</Rectangle>