Windows 8 有没有办法得到CharmsBar的宽度?

Windows 8 有没有办法得到CharmsBar的宽度?,windows-8,windows-store-apps,Windows 8,Windows Store Apps,我想在CharmBar(特别是SearchPane)打开时调整应用程序的一些控件的大小。我做了一些测试,宽度通常是343,但有时更大(这取决于屏幕的大小,而不是分辨率。至少,使用模拟器) 有人知道是否有编程方法来获得该值吗?宽度始终为346,但必须应用缩放因子才能获得以像素为单位的实际宽度。这可以通过以下方式实现: double SearchPaneWidth() { var scale = Windows.Graphics.Display.DisplayProperties.R

我想在CharmBar(特别是SearchPane)打开时调整应用程序的一些控件的大小。我做了一些测试,宽度通常是343,但有时更大(这取决于屏幕的大小,而不是分辨率。至少,使用模拟器)

有人知道是否有编程方法来获得该值吗?

宽度始终为346,但必须应用缩放因子才能获得以像素为单位的实际宽度。这可以通过以下方式实现:

double SearchPaneWidth() {
        var scale = Windows.Graphics.Display.DisplayProperties.ResolutionScale;
        switch (scale) {
            case Windows.Graphics.Display.ResolutionScale.Scale100Percent:
                return 1.0 * 346;
            case Windows.Graphics.Display.ResolutionScale.Scale140Percent:
                return 1.4 * 346;
            case Windows.Graphics.Display.ResolutionScale.Invalid:
                return 1.8 * 346;
            default:
                throw new Exception("Unknown resolution scale");
        }
    }

听起来你真的把你的UI绑定到了一个可以覆盖你的应用的东西上——我怀疑它在所有屏幕尺寸上都是一样的,但是你必须测试肖像模式和不同的DPI。流体应用程序可能需要此类信息。正如我所说,我做的测试表明,屏幕大小之间的宽度可能不同。例如,10.6英寸1920x1080屏幕中的搜索窗格宽度与23英寸1920x1080屏幕中的搜索窗格宽度不同。我认为它始终是346。在未来版本的Windows中,魅力栏的大小可能会发生变化。即使有办法得到它的大小,你也不知道咒语栏出现在哪里。(有时它会出现在左侧。)