2

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

如果您键入:

<shell:ApplicationBarIconButton Text="new document" IconUri="" />然后打开属性窗格并打开 ApplicationBarIconButton 元素的组合框,您会注意到此组合框有一个add按钮和一个new按钮图标。当您查看这两个图标时 - 它们是相同的。

但为什么?

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

例如,New 可以创建一个新文档,同时add可以将某些内容/添加某些内容到当前打开的文档中。

但是,如果这是推理 - 那么两个图标应该是不同的,因为这可能会导致混淆,因为应用程序栏图标的默认状态设置为不可见图标的文本,除非您点击...右下角的屏幕。因此,如果我在 ApplicationBar 菜单中有一个添加和一个新按钮,而在默认状态下,这可能会非常混乱,并且会迫使用户打开菜单只是为了查看哪个按钮是哪个。这违背了隐藏菜单栏文本的目的,不是吗?

4

1 回答 1

0

我尽量不花费大量宝贵的开发时间来试图找出为什么微软决定在开发环境中实现一个默认图像而不是另一个图像的所有原因。作为开发人员,我有责任准确地选择我希望程序的外观和感觉。

SDK 附带了许多标准图标可供选择。

C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Icons\

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

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
    }
}
于 2013-07-12T22:31:19.283 回答