在XAML

时间:2015-08-15 18:40:03

标签: xaml win-universal-app uwp

我是Windows手机浏览器的忠实粉丝,我想将类似的底栏移植到我的应用程序中。现在,我使用的是标准CommandBar

<Page.BottomAppBar>
    <CommandBar>
        <AppBarButton Icon="Go" Click="Go"/>
        <CommandBar.SecondaryCommands>
            <AppBarButton Icon="Setting" Label="Settings" Click="ShowSettings"/>
        </CommandBar.SecondaryCommands>
    </CommandBar>
</Page.BottomAppBar>

由于这浪费了屏幕空间,我真的想利用栏的剩余空间来添加app状态(代替Edge / IE的地址栏),比如下载/上传进度。不幸的是,CommandBar不允许引入TextBlockProgressRing之类的内容。要使用这些控件,我们需要更改为AppBar。但是,我不能使用CommandBar的功能,比如添加3个点按钮来打开隐藏的按钮。

是否有一种简单的方法可以实现这一点,即结合AppBar的灵活性和CommandBar的3点特征?

1 个答案:

答案 0 :(得分:0)

根据documentation on MSDN,您可以使用CommandBar.Content属性,该属性对应于任何主命令一侧的空白区域。要更改内容的对齐方式,您需要更改CommandBar.Horizo​​ntalContentAlignment属性。

    override func viewDidLoad() {
        super.viewDidLoad()
        self.locationManager = CLLocationManager()
        self.locationManager.requestWhenInUseAuthorization()
        if CLLocationManager.locationServicesEnabled() {
            locationManager.delegate = self
            locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
            locationManager.startUpdatingLocation()
        }
    }

    func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        let userLocation:CLLocation = locations.last!
    }

从Win10开始,建议将CommandBar内联,而不是使用Page.TopAppBar或Page.BottomAppBar属性。您可能仍希望使用Page.BottomAppBar属性的一种情况是确保在出现软件键盘时CommandBar仍然可见。