C# 图像。WPF的位置变量?
说到WPF,我是个笨蛋;在win表单中,我可以执行以下操作:C# 图像。WPF的位置变量?,c#,.net,wpf,winforms,image,C#,.net,Wpf,Winforms,Image,说到WPF,我是个笨蛋;在win表单中,我可以执行以下操作: public void blah() { using( var o = new OpenFileDialog()) { if(o.ShowDialog() == DialogResult.OK) { PictureBox p = new PictureBox(); p.ImageLocation = o.FileName;
public void blah()
{
using( var o = new OpenFileDialog())
{
if(o.ShowDialog() == DialogResult.OK)
{
PictureBox p = new PictureBox();
p.ImageLocation = o.FileName;
p.AutoSize = SizeMode.AutoSize;
this.Controls.Add(p);
}
}
}
但是在WPF中,我完全不知道,甚至MSDN也不会给我任何关于如何在运行时将pic插入表单的清晰信息!有人能帮忙吗
非常感谢基本上,您需要创建System.Windows.Controls.Image并将其源设置为System.Windows.Media.Imaging.BitmapImage。然后将图像添加到容器的子级。您可能希望先将图像放入另一个容器中,就像画布一样。下面是代码的快速翻译,但您可能需要稍微使用一下,以获得正确的代码
public void blah()
{
using( var o = new OpenFileDialog())
{
if(o.ShowDialog() == DialogResult.OK)
{
Image i = new Image();
i.Source = new BitmapImage(o.FileName);
//p.AutoSize = SizeMode.AutoSize; <= not sure about this part.
this.Children.Add(i);
}
}
}
可以使用XAML和一些绑定,也可以使用转换器将字符串转换为图像源。这更符合WPF的做事方式 不带转换器的示例: XAML 代码隐藏
public class Window1 : Window {
public ObservableCollection<ImageSource> MyImageCollection { get; set; }
...
public void blah()
{
using( var o = new OpenFileDialog())
{
if(o.ShowDialog() == DialogResult.OK)
{
MyImageCollection.Add(new BitmapImage(new Uri(o.FileName)));
}
}
}
}
这里有一个更简单的方法
Image.Source = new BitmapImage(new Uri("C:\MyImage.jpg");
如果您对sizemode属性有意见,是的,我的大脑有一段时间没有反应,我忘记了更改大小模式的正确方法。lol。感谢您的回答:,将更新我的问题以显示正确的sizemode代码,这样人们就不会使用错误的版本:
Image.Source = new BitmapImage(new Uri("C:\MyImage.jpg");