推荐文章

Winform 全屏显示

Winform 全屏显示

Winform程序无边框、置顶、全屏显示
WPF之Image控件

WPF之Image控件

Image控件加载图片包括加载动态图片,加载静态图片两种方式。加载动态图片通过生成一个BitmapImage,创建该对象后,赋给Image的Source即可。加载的形式:BitmapImage myBitmapImage =new BitmapImage();myBitmapImage.BeginInit();取得数据库存储的图片字段,MSSQL的Image类型Byte[] mybyte = Re
wpf list<T>与ObservableCollection<T>的区别

wpf list<T>与ObservableCollection<T>的区别

List《T》与ObservableCollection《T》的用法基本上是一样的。区别:list《T》:当T继承于INotifyPropertyChanged时,如果list《T》中的属性发生改变,则通知UI属性值已发生改变。但当list《T》添加一项时,list《T》就无法通知前端UI了(此时,ObservableCollection《T》闪亮登场)。ObservableCollection《
WPF调用线程复制文件并显示进度条

WPF调用线程复制文件并显示进度条

在WPF中复制文件时,如何调用线程,显示进度条。《Window x:Class="WpfThreadTest.MainWindow"xmlns="http:schemas.microsoft.comwinfx2006xamlpresentation"xmlns:x="http:schemas.microsoft.comwinfx2006xaml"Title="MainWindow" Closed=
WPF中对XML的读写

WPF中对XML的读写

已知有一个XML文件(bookste.xml)如下:《?xmlversion="1.0" encoding="gb2312"?》《bookste》《bookgenre="fantasy" ISBN="236314"》《title》OberonsLegacy《title》《auth》Cets,Eva《auth》《price》5.95《price》《book》《bookste》 1、往《bookste

WPF之Image控件

日期:2018-07-04 点击:755 来源:

Image控件加载图片包括加载动态图片,加载静态图片两种方式。

加载动态图片通过生成一个BitmapImage,创建该对象后,赋给ImageSource即可。加载的形式:

BitmapImage myBitmapImage =new BitmapImage();

myBitmapImage.BeginInit();

//取得数据库存储的图片字段,MS-SQL的Image类型

Byte[] mybyte = ReadImage();

myBitmapImage.StreamSource =newMemoryStream(mybyte);

myBitmapImage.EndInit();

myImage.Width = myBitmapImage.Width/2;

myImage.Height = myBitmapImage.Height/2;

myImage.Source = myBitmapImage;


加载系统目录中已经存在的图片,可以采用WPF中的pack://application:,,,格式来加载,比 如在系统的Resource目录下的图片,我们可以这样定义

ImgDev.Source = new BitmapImage(new Uri(pack://application:,,,/Resources/aa.jpg));

如果我们需要挪动页面上的图片,该怎么办呢?下面以我自己做的一个小DEMO来演示下:

挪动图片实际上挪动Image控件的上一层框架容器,这样我们把Image控件放入canvas,来对

canvas进行挪动。例如:

<Canvas Name="canvas1" Height="238" HorizontalAlignment="Left" VerticalAlignment="Top" Width="378">

<Image Name="myImage"></Image>

</Canvas>


然后我们需要在WPF窗体里面监测鼠标的左键按下,移动的动作,因此在xaml文件的window标签中

我们加入MouseMove="win_mainX_MouseMove" MouseUp="win_mainX_MouseUp"

其中win_mainX是窗体的名称,同样,在Image控件,需要判断鼠标是否按下,如果按下,则记录相应的

Position,并且移动图片。代码如下:

bool IsMouseDown =false;

Point mousePoint;

object mouseCtrl =null;

privatevoidwin_mainX_MouseMove(object sender, MouseEventArgs e){

   if (IsMouseDown){

       if (e.LeftButton == MouseButtonState.Pressed)

       {

           Point theMousePoint = e.GetPosition(this.canvas1);

           Canvas.SetLeft((UIElement)mouseCtrl, theMousePoint.X - (mousePoint.X - Canvas.GetLeft(((UIElement)mouseCtrl))));

           Canvas.SetTop((UIElement)mouseCtrl, theMousePoint.Y - (mousePoint.Y - Canvas.GetTop(((UIElement)mouseCtrl))));

           mousePoint = theMousePoint;

        }

     }

}

privatevoid win_mainX_MouseUp(object sender, MouseButtonEventArgs e){

   if (IsMouseDown){

        IsMouseDown =false;

    }

}

privatevoid myImage_MouseDown(object sender, MouseButtonEventArgs e){

 if (e.LeftButton == MouseButtonState.Pressed) {

     IsMouseDown =true;

     mousePoint = e.GetPosition(this.canvas1);

     mouseCtrl = sender;

  }

}






这篇文档对您是否有帮助?

Winform 全屏显示

Winform 全屏显示

Winform程序无边框、置顶、全屏显示
WPF之Image控件

WPF之Image控件

Image控件加载图片包括加载动态图片,加载静态图片两种方式。加载动态图片通过生成一个BitmapImage,创建该对象后,赋给Image的Source即可。加载的形式:BitmapImage myBitmapImage =new BitmapImage();myBitmapImage.BeginInit();取得数据库存储的图片字段,MSSQL的Image类型Byte[] mybyte = Re
wpf list<T>与ObservableCollection<T>的区别

wpf list<T>与ObservableCollection<T>的区别

List《T》与ObservableCollection《T》的用法基本上是一样的。区别:list《T》:当T继承于INotifyPropertyChanged时,如果list《T》中的属性发生改变,则通知UI属性值已发生改变。但当list《T》添加一项时,list《T》就无法通知前端UI了(此时,ObservableCollection《T》闪亮登场)。ObservableCollection《
WPF调用线程复制文件并显示进度条

WPF调用线程复制文件并显示进度条

在WPF中复制文件时,如何调用线程,显示进度条。《Window x:Class="WpfThreadTest.MainWindow"xmlns="http:schemas.microsoft.comwinfx2006xamlpresentation"xmlns:x="http:schemas.microsoft.comwinfx2006xaml"Title="MainWindow" Closed=
WPF中对XML的读写

WPF中对XML的读写

已知有一个XML文件(bookste.xml)如下:《?xmlversion="1.0" encoding="gb2312"?》《bookste》《bookgenre="fantasy" ISBN="236314"》《title》OberonsLegacy《title》《auth》Cets,Eva《auth》《price》5.95《price》《book》《bookste》 1、往《bookste