当前位置: 代码迷 >> C# >> WPF里显示图像的小疑点
  详细解决方案

WPF里显示图像的小疑点

热度:20   发布时间:2016-05-05 04:27:29.0
WPF里显示图像的小问题
楼主想要在WPF里实现按一个button然后在窗口里显示某个已经存好的图片。
 请求实现方法?
小白楼主知道要用button的响应,要用到图像的句柄。。。然后就不清楚了,试了好久没成功
---------------------XMAL---窗口的源程序在此--------------------
<Window x:Class="WpfApplication2.Main"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         Title="MainWindow" Height="350" Width="525">
     <Grid>
         <TextBox Height="23" Margin="10,10,9,0" Name="textBox1" VerticalAlignment="Top" />
         <TextBox Height="23" Margin="10,41,9,0" Name="textBox2" VerticalAlignment="Top" />
         <Button Content="Button" HorizontalAlignment="Left" Margin="420,248,0,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="0.454,1.455"/>
         <Image HorizontalAlignment="Left" Height="100" Margin="101,87,0,0" VerticalAlignment="Top" Width="100"/>
         <Image HorizontalAlignment="Left" Height="100" Margin="282,87,0,0" VerticalAlignment="Top" Width="100"/>

     </Grid>
 </Window>


  
------解决思路----------------------
给Image指定Source
------解决思路----------------------
“句柄”这个词儿只有c++才需要,在如此高大上的.net程序中直接针对控件编程。如果你口里都是低级的c++术语,那么就没人帮你了,因为你只要认真看一本最基本的.net控件(或者xaml)教程就行了。
------解决思路----------------------
wpf不玩句柄,它的句柄是整个窗口就一个
------解决思路----------------------
用Image控件显示图像主要就是正确设置其Source属性。

可以在XAML里写,指定图片的正确路径就可,比如:
<Image Source=“D:\Images\Moon.jpg”/>


也可以在代码里写,需要用ImageSource类型的对象给其复制,通常使用的是ImageSource的派生类BitmapImage,比如:
BitmapImage bitmapImage = new BitmapImage(); 
//填充数据,略
Scenario2Image.Source = bitmapImage;

------解决思路----------------------
可以这样写代码

using System.Windows.Media;
...
        /// <summary>
        /// ImageSourceConverter转换器
        /// </summary>
        private ImageSourceConverter convert = new ImageSourceConverter();

        /// <summary>
        /// 选择文件按钮点击事件
        /// </summary>
        /// <param name="sender">Button</param>
        /// <param name="e">RoutedEventArgs</param>
        private void SelectImageBtn_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Title = "选择图形文件";
            dlg.Filter = "所有图形文件
------解决思路----------------------
*.bmp;*.jpg;*.png
------解决思路----------------------
bmp文件
------解决思路----------------------
*.bmp
------解决思路----------------------
jpg文件
------解决思路----------------------
*.jpg
------解决思路----------------------
png文件
------解决思路----------------------
*.png";
            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                this.imageLeft.Source = this.convert.ConvertFrom(dlg.FileName) as ImageSource;
            }

            return;
        }

可以到下面的地址下载例子代码
http://download.csdn.net/detail/yanran_hill/8529413
------解决思路----------------------
引用:
追问一下,如果我是一个图片流的话。我希望在后台上写代码,再BINDING上去,可行么?


应该没有问题,WPF中的Image控件,是directX实现的,而WInfiorm下的Bitmap,是GDI实现的,你需要做一个从ImageSource与Bitmap之间的转换工具。

可以去上面提供的例子中看一下,有代码
------解决思路----------------------
实现按一个button然后在窗口里显示某个已经存好的图片。


-》  先让图片的Visibility 为Hidden ,,点击按钮改为 Visible  不就可以了。 搞什么  句柄。。。
  相关解决方案