Windows Phone开发经验谈(17)-两则改善用户体验的开发技巧

    不知道大家有没一种体会,就是你在软件中加入了一种功能之后,有的用户希望你不要加入这项功能,有的则是非常喜欢新加入的功能。这种情况就实在令人头疼。这里就说两个这样的例子。

    1、退出确认功能

     有的时候开发者担心用户操作出错,而特别设置了一个退出确认功能,但是市场上大部分用户却不是很喜欢,但是你如果把这项功能去掉就又会导致误操作,实在是众口难调..所以你就必须在设置里面加入一个选项,让用户选择是否要退出确认功能,实现代码如下:

首先建立一个属性ExitConfirm来存储系统的设置..判断是否是退出确认

   private IsolatedStorageSettings m_IsolatedStorageSettings = IsolatedStorageSettings.ApplicationSettings;

        public bool ExitConfirm
        {
            get
            {
                return (this.m_IsolatedStorageSettings.Contains("ExitConfirm") && ((bool) this.m_IsolatedStorageSettings["ExitConfirm"]));
            }
            set
            {
                if (this.ExitConfirm != value)
                {
                    this.m_IsolatedStorageSettings["ExitConfirm"] = value;
                    if (this.PropertyChanged != null)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("ExitConfirm"));
                    }
                }
            }
        }

再在主界面中重写OnBackKeyPress方法代码如下所示

   protected override void OnBackKeyPress(CancelEventArgs e)
        {
if (Theme.Instance.ExitConfirm && (MessageBox.Show("确定退出超级词典", "提示", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel))
            {
                e.Cancel = true;
            }
            base.OnBackKeyPress(e);
}


这样退出确认功能只会在ExitConfirm为true的时候提示,用户如果没有设置退出确认则不会显示了...很简单的小技巧但是却改善了用户体验

    

     2、图标透明

有的时候开发者把图标配上底色自我感觉很不错..当应用发布后却遭到很多用户反馈说是否能把图标改成透明的,我就曾经遇到过这样的反馈。其实这并不一定图标配色出了问题,而可能是有的用户希望APP的Icon能够和系统的主题一致,但是你或者其他一些用户又喜欢有底色的Icon..这又如何是好呢?其实很简单,还是按照第一条的结论,也就是再添加一个设置项,来设置是否需要图标透明..下面可以一起跟我一起做一遍:

首先做2个173*173的图标的,一个底色的叫Background.png另一个透明的叫Background2.png,默认是有底色的...在系统设置里面添加一个ToggleSwitch并添加一个事件ToggleSwitch_Checked代码如下:

        private void ToggleSwitch_Checked(object sender, RoutedEventArgs e)
        {
            ShellTile tile = Enumerable.First<ShellTile>(ShellTile.ActiveTiles);
            if (tile != null)
            {
                string uriString = string.Empty;
                if (this.toggleSwitch.IsChecked.Value)
                {
                    uriString = "/Background2.png";
                }
                else
                {
                    uriString = "/Background.png";
                }
                Theme.Instance.DefaultTile = this.toggleSwitch.IsChecked.Value;
                StandardTileData data = new StandardTileData();
                this.imgTile.Source = new BitmapImage(new Uri(uriString, UriKind.RelativeOrAbsolute));
                data.BackgroundImage = new Uri(uriString, UriKind.RelativeOrAbsolute);
                tile.Update(data);
            }
        }

这样用户就能够自由的选择APP的Icon是否要背景了。

这两则示例虽然简单,却大大提升了用户体验,不必太多的代码换来的是让用户感觉到你所做软件非常的用心体贴,何乐而不为。

有什么疑问欢迎留言讨论。

posted on 2012-08-19 19:10  豆浆咖啡  阅读(1378)  评论(0编辑  收藏  举报