wpf开发遇到的一些问题

1.在无边框窗口里,webbrowser无法显示

当设属性WindowStyle="None"AllowsTransparency="True"Background="Transparent",webbrowser无法显示。

主要是因为webbrowser和普通的wpf控件绘制方式不一样。

下了codeplex上的Wpf Borderless Window 这个开源程序解决了这个问题。

下载地址http://wpfborderless.codeplex.com/

2.page和webbrowser里的html无法执行前进后退操作

由于我们的客户端需要page和html相互导航,而frame的navigate系统又不支持这个功能。

最后使用了两个stack,一个保存前进的uri记录,一个保存后退的uri记录,自己操作前进后退功能。

3.listbox的data binding

因为需要listbox绑定自己的数据显示,而且listItem结构复杂,最后采用的DataTemplate来解决这个问题。

对于控件里button的事件响应,采用了button的的附近属性tag来标识属于哪个item。

4.绑定的数据改变后,如何通知ui显示

对于要绑定的数据继承INotifyPropertyChanged类

其属性要写成

public event PropertyChangedEventHandler PropertyChanged;

        private void NotifyPropertyChanged(String info)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(info));
            }
        }

 

       public string Name
       {
           get
           {
               return this.m_name;
           }
           set
           {
               if (value != this.m_name)
               {
                   m_name = value;
                   NotifyPropertyChanged("Name");

               }
           }
       }

5 多线程

a可以通过ui控件的InvokeBegin函数把事件加到ui控件的 Dispatcher队列。

b.可以通过委托创建线程。 

DownloadDelegate fetch = new DownloadDelegate(dowmloadTheFle);
                fetch.BeginInvoke(null, null);

c.用DispatcherTimer类定时触发响应事件。比如下载时定时更新ui显示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值