c# - 对 Windows Phone 8 应用程序中的相同图标文件感到困惑

标签 c# .net language-agnostic visual-studio-2012 windows-phone-8

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

如果你输入:

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

但为什么呢?

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

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

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

最佳答案

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

有许多标准图标可供选择,它们与 SDK 捆绑在一起。

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

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

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
    }
}

关于c# - 对 Windows Phone 8 应用程序中的相同图标文件感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15461559/

相关文章:

c# - 缓存农场,读取池

c# - 如何在系统 Windows 用户帐户下运行控制台应用程序?

algorithm - 如何擅长数据结构和分析?

c# - 如何在 Unity 中编辑网格/顶点

c# - 将 .NET 配置为在 Windows 7 上使用 3.5,在 Windows 8 上使用 4.5

c# - 来自 png 图像的 GetPixel() 中的 RGB 值错误

.net - .NET可以测试数组的等效性而不仅仅是相等的引用吗?

java - 从具有关系权重的表生成视觉表示

algorithm - 计算用于定义二次贝塞尔曲线分段的参数

c# - Entity Framework : Composite Foreign Key on unique (not primary keys) parent fields