0
我有一个xaml文件,它有一系列我在窗口中使用的资源。具体来说,我有两个Image
对象。我不需要编码URI位置,而需要在我的Window的构造函数中设置这些图像。我怎样才能做到这一点?如何以编程方式设置Xaml定义的Window.Resource图像?
我搜索和搜索,我试图设置图像.Source
属性。没有任何工作。作为参考,这里就是这些图像是如何在我的XAML文件中声明:
<Window.Resources>
<Image x:Key="iUpdate" />
<Image x:Key="iDelete" />
</Window.Resources>
这里是他们是如何使用按钮的内容:
<DataTemplate>
<DockPanel>
<Button Name="UpdateChange" Content="{StaticResource iUpdate}" Width="24" />
<Button Name="DeleteChange" Content="{StaticResource iDelete}" Width="24" />
<Label Content="{Binding name}" />
</DockPanel>
</DataTemplate>
这是我在设定失败的尝试图像的资源。
//In my constructor...
// iUpdate is a property on the Window
iUpdate = (Image)FindResource("iUpdate");
iUpdate = new Image();
iUpdate.Source = ImageHelpers.ConvertBitmapToImageSource(Common.LoadImage("edit.ico"));
仅供参考,我不能设置在我的XAML文件的来源,因为调用Common.LoadImage(...)
是一个特殊的调用,解决了文件的位置。从用户到用户,这可能会有很大的不同,这就是辅助方法首先存在的原因。
为什么你不只是绑定到两个视图模型属性?您将在XAML中创建Image控件作为Button的内容,并将它们的Source属性绑定到视图模型属性(或者如果您喜欢的话,可以将其与MainWindow类的属性绑定)。无论如何,控制资源是一个坏主意。 – Clemens 2015-02-11 21:53:47
@Clemens我会研究一下。这是我第一次尝试WPF。这种方法可能有效。我怎么做? – RLH 2015-02-11 21:56:24