문제

BottomAppBar 내의 AppBarToggleButton을 누르면 간단한 플라이아웃(정보 콘텐츠 포함)을 표시하려고 하는데 솔루션이 작동하지 않습니다.:(

이것은 내 코드입니다.

<Page.BottomAppBar>
        <CommandBar>
            <AppBarToggleButton x:Uid="MapPageAppBarLegend" Label="" Icon="List">
                <FlyoutBase.AttachedFlyout>
                    <Flyout>
                        <TextBlock Text="Informations here..."/>
                    </Flyout>
                </FlyoutBase.AttachedFlyout>
            </AppBarToggleButton>
        </CommandBar>
</Page.BottomAppBar>

아무것도 나타나지 않습니다..이 플레이아웃을 보여주도록 도와줄 사람이 있나요?제 영어 실력에 대해 정말 감사하고 죄송합니다.:)

파메

도움이 되었습니까?

해결책

모든 것이 매우 명확하게 설명되어 있습니다. MSDN에서 (아주 좋은 예도 있습니다):

아무것도 나타나지 않기 때문에 플라이아웃 버튼에 대해서만 자동으로 열림(및 앱바토글버튼 에서 파생되지 않습니다 Button 수업):

사용자가 버튼을 클릭하면 버튼에 연결된 플라이아웃이 자동으로 열립니다.플라이아웃을 열기 위해 이벤트를 처리할 필요가 없습니다.(여기에는 AppBarButton과 같이 Button에서 파생된 컨트롤이 포함됩니다.

물론 Flyout 아무에게나 FrameworkElement 하지만 수동으로 열어야 합니다.

FlyoutBase.AttachedFlyout 연결된 속성을 사용하여 모든 FrameworkElement 개체에 Flyout 컨트롤을 연결할 수 있습니다.그렇게 하려면 Tapped 이벤트와 같은 FrameworkElement의 상호 작용에 응답하고 코드에서 플라이아웃을 열어야 합니다.

XAML에서 - 정의 Flyout 리소스에서 버튼에 첨부하세요.

<Page.Resources>
    <Flyout x:Key="myFlyout" Placement="Top">
        <TextBlock Text="Informations here..."/>
    </Flyout>
</Page.Resources>
<Page.BottomAppBar>
    <CommandBar>
        <AppBarToggleButton x:Uid="MapPageAppBarLegend" Label="First" Icon="List"
                            FlyoutBase.AttachedFlyout="{StaticResource myFlyout}"
                            Click="AppBarToggleButton_Click"/>                
    </CommandBar>
</Page.BottomAppBar>

그리고 코드 뒤에 있는 이벤트는 다음과 같습니다.

private void AppBarToggleButton_Click(object sender, RoutedEventArgs e)
{
    FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);  
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top