对Windows Phone 8应用中相同的图标文件感到困惑

本文关键字:文件 图标 Phone Windows 应用 | 更新日期: 2023-09-27 18:04:25

为什么Visual Studio中有两个相同的图标?

如果你输入:

<shell:ApplicationBarIconButton Text="new document" IconUri="" />,然后打开Properties窗格,打开ApplicationBarIconButton元素的ComboBox,你会注意到这个梳子框有一个add按钮和一个new按钮图标。当你看这两个图标时,它们是一样的。

但是为什么呢?

我知道,在上下文中,new和add可以有不同的含义/执行不同的动作:

。New可以创建一个新的文档,而add可以附加一些东西/添加一些东西到当前打开的文档。

但是如果是这样的话,那么这两个图标应该是不同的,因为这可能会导致混淆,因为应用程序栏图标的默认状态是这样设置的,除非你点击屏幕右下角的...,否则图标的文本是不可见的。如果我在ApplicationBar菜单中同时有一个add和一个new按钮,在默认状态下,这可能会很混乱,会迫使用户打开菜单来查看哪个按钮是哪个。这就违背了隐藏菜单栏文本的初衷,不是吗?

对Windows Phone 8应用中相同的图标文件感到困惑

我尽量不花费大量宝贵的开发时间来找出Microsoft决定在开发环境中实现一个默认映像而不是另一个默认映像的所有原因。作为开发人员,我有责任选择我想要的程序的外观和感觉。

SDK中有很多标准的图标可供选择。

C:'Program Files (x86)'Microsoft sdk 'Windows Phone'v8.0'Icons'

此外,这里是如何创建自己的自定义应用程序栏。另一种按钮图标方法是继续使用New按钮的标准add.png图像,并使用Add按钮的check.png图像,如果确实有必要在同一个应用程序栏上有两种类型的操作。

public partial class MyPage : PhoneApplicationPage
{
    public MyPage()
    {
        InitializeComponent();
        BuildApplicationBar();
    }
    private void BuildApplicationBar()
    {
        // Set the page's ApplicationBar to a new instance of ApplicationBar.    
        ApplicationBar = new ApplicationBar();
        ApplicationBar.Mode = ApplicationBarMode.Default;
        ApplicationBar.IsVisible = true;
        ApplicationBar.Opacity = 1.0;
        ApplicationBar.IsMenuEnabled = true;
        // Create new buttons
        ApplicationBarIconButton AppBarAddButton = new ApplicationBarIconButton(new Uri("/Assets/check.png", UriKind.Relative));
        AppBarAddButton.Text = "Add";
        AppBarAddButton.Click += new EventHandler(AppBarAddButton_Click);
        ApplicationBar.Buttons.Add(AppBarAddButton);
        ApplicationBarIconButton AppBarNewButton = new ApplicationBarIconButton(new Uri("/Assets/add.png", UriKind.Relative));
        AppBarNewButton.Text = "New";
        AppBarNewButton.Click += new EventHandler(AppBarNewButton_Click);
        ApplicationBar.Buttons.Add(AppBarNewButton);
    }
    private async void AppBarAddButton_Click(object sender, EventArgs e)
    {
        //TODO: Do something for the add click action
    }
    private async void AppBarNewButton_Click(object sender, EventArgs e)
    {
        //TODO: Do something for the new click action
    }
}