问题显示每个appbar按钮Windows Phone 8.1 RT中的MenuFlyout项目

时间:2015-06-02 02:06:01

标签: c# windows-phone-8.1

我的appbar按钮里面有每个弹出项目:

<Page.BottomAppBar>
<CommandBar>

    <!--app bar basic shape-->
    <AppBarButton x:Name="BaseShapeMenu" Label="Hình cơ bản">
        <AppBarButton.Icon>
            <FontIcon FontFamily="Segoe UI Symbol" Glyph="▭"/>
        </AppBarButton.Icon>
        <AppBarButton.Flyout>
            <MenuFlyout>
                <MenuFlyoutItem Text="'▭' Rectangle" Tag="stRectangle" Click="BaseShapeMFI_Click" />
                <MenuFlyoutItem Text="'⬬' Ellipse" Tag="stEllipse" Click="BaseShapeMFI_Click" />
                <MenuFlyoutItem Text="'/' Line" Tag="stLine" Click="BaseShapeMFI_Click" />
            </MenuFlyout>
        </AppBarButton.Flyout>
    </AppBarButton>

    <!--app bar chemical shape-->
    <AppBarButton x:Name="ChemicalShape" Label="Hình hóa học">
        <AppBarButton.Icon>
            <FontIcon FontFamily="Segoe UI Symbol" Glyph="⌬"/>
        </AppBarButton.Icon>
        <AppBarButton.Flyout>
            <MenuFlyout>
                <MenuFlyoutItem Text="'⬡' CycloHexan"   Tag="stCycloHexan"   Click="ChemicalMFI_Click" />
                <MenuFlyoutItem Text="'⌬' Benzen"       Tag="stBenzen"       Click="ChemicalMFI_Click" />
                <MenuFlyoutItem Text="'⬣' BenzenCircle" Tag="stBenzenCircle" Click="ChemicalMFI_Click" />
            </MenuFlyout>
        </AppBarButton.Flyout>
    </AppBarButton>

    <!--app bar symbol-->
    <AppBarButton x:Name="SymbolShape" Label="Ký tự">
        <AppBarButton.Icon>
            <FontIcon FontFamily="Segoe UI Symbol" Glyph="♒"/>
        </AppBarButton.Icon>
        <AppBarButton.Flyout>
            <MenuFlyout>
                <MenuFlyoutItem Text="'⬡' CycloHexan"   Tag="stCycloHexan"/>
                <MenuFlyoutItem Text="'⌬' Benzen"       Tag="stBenzen"    />
                <MenuFlyoutItem Text="'⬣' BenzenCircle" Tag="stBenzenCircle"  />
            </MenuFlyout>
        </AppBarButton.Flyout>
    </AppBarButton>

    <AppBarButton x:Name="SelectButton" Label="Chọn hình" Icon="Edit" Click="SelectButton_Click"/>

</CommandBar>

每个按钮的菜单弹出项目都丢失了位置。运行时,它显示如下图所示:

enter image description here enter image description here enter image description here

有人可以建议任何解决此问题的方法吗?

1 个答案:

答案 0 :(得分:0)

你是对的Windows 8.1问题,其中MenuFlyout的属性设置在Top上,由于它位于其他弹出窗口之上而导致缺陷。
我找到的唯一解决方案是在弹出窗口中添加额外的空白MenuItem

 <Page.BottomAppBar>
        <CommandBar>
            <CommandBar.Background>
                <SolidColorBrush Color="#FF1F1F1F" Opacity="0.4"/>
            </CommandBar.Background>

            <!--app bar basic shape-->
            <AppBarButton x:Name="BaseShapeMenu" Label="Hình cơ bản">
                <AppBarButton.Icon>
                    <FontIcon FontFamily="Segoe UI Symbol" Glyph="▭"/>
                </AppBarButton.Icon>
                <AppBarButton.Flyout>
                    <MenuFlyout x:Name="Flyout_BaseShapeMenu">
                        <MenuFlyoutItem x:Name="_1" Text="'▭' Rectangle" Tag="stRectangle" />
                        <MenuFlyoutItem x:Name="_2" Text="'⬬' Ellipse" Tag="stEllipse" />
                        <MenuFlyoutItem x:Name="_3" Text="'/' Line" Tag="stLine" />
                    </MenuFlyout>
                </AppBarButton.Flyout>
            </AppBarButton>

            <!--app bar chemical shape-->
            <AppBarButton x:Name="ChemicalShape" Label="Hình hóa học">
                <AppBarButton.Icon>
                    <FontIcon FontFamily="Segoe UI Symbol" Glyph="⌬"/>
                </AppBarButton.Icon>
                <AppBarButton.Flyout>
                    <MenuFlyout x:Name="Flyout_ChemicalShape">
                        <MenuFlyoutItem x:Name="_4" Text="'⬡' CycloHexan"   Tag="stCycloHexan" />
                        <MenuFlyoutItem x:Name="_5" Text="'⌬' Benzen"       Tag="stBenzen" />
                        <MenuFlyoutItem x:Name="_6" Text="'⬣' BenzenCircle" Tag="stBenzenCircle" />
                        <MenuFlyoutItem/>
                        <MenuFlyoutItem/>
                    </MenuFlyout>
                </AppBarButton.Flyout>
            </AppBarButton>

            <!--app bar symbol-->
            <AppBarButton x:Name="SymbolShape" Label="Ký tự" >
                <AppBarButton.Icon>
                    <FontIcon FontFamily="Segoe UI Symbol" Glyph="♒"/>
                </AppBarButton.Icon>
                <AppBarButton.Flyout>
                    <MenuFlyout x:Name="Flypu_SymbolShape">
                        <MenuFlyoutItem x:Name="_7" Text="'⬡' CycloHexan"   Tag="stCycloHexan"/>
                        <MenuFlyoutItem x:Name="_8" Text="'⌬' Benzen"       Tag="stBenzen"    />
                        <MenuFlyoutItem x:Name="_9" Text="'⬣' BenzenCircle" Tag="stBenzenCircle"  />
                        <MenuFlyoutItem/>
                        <MenuFlyoutItem/>
                        <MenuFlyoutItem/>
                    </MenuFlyout>
                </AppBarButton.Flyout>
            </AppBarButton>

            <AppBarButton x:Name="SelectButton" Label="Chọn hình" Icon="Edit"/>

        </CommandBar>
    </Page.BottomAppBar>

请在我测试代码时添加您的点击事件并删除命名,以便为您提供可能的答案,并且必须将其删除。
希望这有助于:)