Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在wpf中显示文件中的图像不起作用?_C#_Wpf - Fatal编程技术网

C# 在wpf中显示文件中的图像不起作用?

C# 在wpf中显示文件中的图像不起作用?,c#,wpf,C#,Wpf,我有一个按钮b3和一个名为pictureBox1的图像。我使用的是WPF,但是我使用的是winforms openFileDialog,而不是WPF附带的对话框: 下面是我在按钮的单击事件中输入的代码: private void b3_Click(object sender, RoutedEventArgs e) { System.Windows.Forms.OpenFileDialog openDialogIcon = new System.Windows.Forms

我有一个按钮b3和一个名为pictureBox1的图像。我使用的是WPF,但是我使用的是winforms openFileDialog,而不是WPF附带的对话框:

下面是我在按钮的单击事件中输入的代码:

 private void b3_Click(object sender, RoutedEventArgs e)
    {
        System.Windows.Forms.OpenFileDialog openDialogIcon = new System.Windows.Forms.OpenFileDialog();
        if (openDialogIcon.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
            Image i = new Image();
            BitmapImage src = new BitmapImage();
            src.BeginInit();
            src.UriSource = new Uri(openDialogIcon.FileName, UriKind.Absolute);
            src.CacheOption = BitmapCacheOption.OnLoad;
            src.EndInit();
            i.Source = src;
            i.Stretch = Stretch.Uniform;
            //int q = src.PixelHeight;        // Image loads here

        }
    }
当我点击按钮并选择一个图标时。图标不会出现在图片中


有人能解释一下为什么上面的代码没有在pictureBox中显示图标吗?

您需要将您的图像分配给pictureBox,否则您将无法在屏幕上看到它,您只能在内存中创建图像对象

private void b3_Click(object sender, RoutedEventArgs e)
{
    System.Windows.Forms.OpenFileDialog openDialogIcon = new System.Windows.Forms.OpenFileDialog();
    if (openDialogIcon.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
        BitmapImage src = new BitmapImage();
        src.BeginInit();
        src.UriSource = new Uri(openDialogIcon.FileName, UriKind.Absolute);
        src.CacheOption = BitmapCacheOption.OnLoad;
        src.EndInit();
        pictureBox1.Source = src;
    }
}
尝试在窗口中拖放图像控件

...
//imageStretch <- the name of Image control
 i.Stretch = Stretch.Uniform;
 //int q = src.PixelHeight;        // Image loads here
 imageStretch.Source = src;

...

我看不出你在哪里给pictureBox1分配了什么…是的。这就是问题所在。很抱歉,在发布这个问题之前,我必须仔细研究一下代码。