【问题标题】:Attach Flyout control to Rectange将弹出控件附加到矩形
【发布时间】:2015-09-14 18:53:05
【问题描述】:

我只是想知道是否可以将 Flyout 控件添加到 Rectangle? 当用户点击矩形时,我需要显示弹出控件。

类似:

 <Canvas Grid.Column="0" Background="Yellow">
   <Rectangle Fill="Blue" Width="400" Height="400" Tapped="Rectangle_Tapped">                                   

      <Flyout>
         <TextBox>Some text</TextBox>
      </Flyout>
   </Rectangle>
 </Canvas>

【问题讨论】:

    标签: xaml


    【解决方案1】:

    来自 msdn 文档:https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.flyout.aspx

    要将 Flyout 与其他控件(按钮除外)关联,请使用 FlyoutBase.AttachedFlyout 附加属性

    <Rectangle x:Name="Rect1" Tapped="Rectangle_Tapped">      
      <FlyoutBase.AttachedFlyout>
         <Flyout>
            <TextBox>Some text</TextBox>
         </Flyout>
      </FlyoutBase.AttachedFlyout>
    </Rectangle>
    

    并使用 FlyoutBase.ShowAttachedFlyout 显示附加的 flayout:

    private void Rectangle_Tapped(object sender, EventArgs e)
    {
       FlyoutBase.ShowAttachedFlyout(Rect1);
    }
    

    但是,我建议您使用按钮而不是矩形。而是修改按钮的模板以使其看起来像需要,因为按钮为您提供了其他功能,例如用户单击按钮时的视觉反馈、焦点、制表符等。

    【讨论】:

    • 谢谢。一个额外的问题。我需要在特定位置显示此弹出窗口。在 Button 的情况下,我可以使用 ShowAt() 方法。但是这个我没有 Flyout 类的实例,不能调用这个方法。有没有办法在特定位置显示此 Flyout?
    • 要获取弹出的实例,您可以使用 FlyoutBase.GetAttachedFlyout 方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2010-12-15
    相关资源
    最近更新 更多