如何使用C#在Windows应用商店应用中创建底部或顶部AppBar?

时间:2013-05-16 01:49:45

标签: c# windows-store-apps

我知道通过XAML代码创建AppBar的方法。我想知道如何通过C#创建AppBar。

在Windows Phone应用程序上,我可以这样做。

ApplicationBar = new ApplicationBar(){
            Mode = ApplicationBarMode.Minimized
};

ApplicationBarMenuItem copyLinkButton = new ApplicationBarMenuItem();
copyLinkButton.Click += (sender, e) => { //action };
copyLinkButton.Text = "copy to clipboard";
ApplicationBar.MenuItems.Add(copyLinkButton);

ApplicationBarMenuItem openInIEButton = new ApplicationBarMenuItem();
openInIEButton.Click += (sender, e) => { //action };
openInIEButton.Text = "open in internet explorer";
ApplicationBar.MenuItems.Add(openInIEButton);

如何在Windows应用商店应用中执行此操作?

更新

感谢@kimsk给我回答上一个问题。我用你的答案解决了这个问题。但在解决了这个问题后,又出现了另一个类似的问题。

因为我不是简单地使用这样的按钮,

<Button>Button 3</Button>

我在使用Microsoft的默认样式时遇到了问题。无论如何都要参考那个特定的风格,还是我必须自己创建一个?

<Button Style="{StaticResource EditAppBarButtonStyle}"/>

再次感谢!

1 个答案:

答案 0 :(得分:3)

如果您认为XAML只是一种创建UIElement元素对象(如AppBar,Button,StackPanel等)的声明方式,那就非常简单了。

以下是您已经知道的在XAML中创建BottomAppBar的代码:

<Page.BottomAppBar>
    <AppBar>
        <StackPanel Orientation="Horizontal">
            <Button>Button 3</Button>
            <Button>Button 4</Button>
        </StackPanel>
    </AppBar>
</Page.BottomAppBar>

以下是创建TopAppBar的C#代码:

var appBar = new AppBar();
var stackPanel = new StackPanel{Orientation = Orientation.Horizontal};

stackPanel.Children.Add(new Button { Content = "Button1" });
stackPanel.Children.Add(new Button { Content = "Button2" });

var buttonWithStyle = new Button();
buttonWithStyle.Style = Application.Current.Resources["EditAppBarButtonStyle"] as Style;
stackPanel.Children.Add(buttonWithStyle);

appBar.Content = stackPanel;

this.TopAppBar = appBar;

注意模式? :-)

这是截图: enter image description here

希望这有帮助!