有关于WPF的几个问题.

zhuhaoonly 2010-12-20 04:49:40
由于刚开始学习WPF的编程,发现很多函数用法与WinForm程序中的用法不太一样
1、this.Paint += new System.Windows.Forms.PaintEventHandler(this.BodyparyPanel_Paint);
在WinForm程序中是可以这样使用PaintEventHandler的,
但是在WPF中就无法使用,我想请问一下在WPF中该如何才能使用这个Paint事件呢?


2、在C#的WinForm程序中可以使用this.Refresh();来表示强制控件使其工作区无效并立即重绘自己和任何子控件,但是在WPF中又无法如此使用,我想请问下如何在WPF中实现这个功能呢?


3、在C#的WinForm程序中:
private void BodyparyPanel_MouseMove(object sender, MouseEventArgs e)
{
bool bHand = false;
foreach (CheckRectangle cr in CheckRectangleList)
{
if (cr.Check(e.Location))
{
this.Cursor = System.Windows.Forms.Cursors.Hand;
bHand = true;
break;
}
}

if (!bHand)
{
this.Cursor = System.Windows.Forms.Cursors.Default;
}

foreach (CheckRectangle cr in CheckRectangleList)
{
if (cr.bClick == true)
{
return;
}
}

foreach (CheckRectangle cr in CheckRectangleList)
{
if (cr.Check(e.Location))
{
this.CurrectRectangle = cr;
break;
}
}
}

可以使用e.Location,来表示获取鼠标在产生鼠标事件时的位置,但是在WPF中MouseEventArgs 是
System.Windows.Input.MouseEventArgs的,无法使用e.Location来表示获取鼠标在产生鼠标事件时的位置,
在WPF中又是如何表示的呢?
...全文
131 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
vrhero 2010-12-20
  • 打赏
  • 举报
回复
1.因为渲染机制不同,WPF可以自由且精确控制所有UIElement外观,不再需要Paint那样的鸡肋...

2.同上,所以也不需要Refresh那样的鸡肋...但是仍有UIElement.UpdateLayout方法强制重排布局...

3.因为有更强大的e.GetPosition方法...

基本上,我认为你需要从最基础开始学习WPF...并且暂时彻底忘掉WinForm的一切...
龍过鸡年 2010-12-20
  • 打赏
  • 举报
回复
嘿嘿!有一个上贼船的!

我的问题说实话,真不知道该怎么回答,提供资料,参考下吧!

WPF Windows 概述

Windows Presentation Foundation 图形呈现概述

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧