【问题标题】:CalendarDatePicker inside Button flyoutCalendarDatePicker 内的按钮弹出
【发布时间】:2015-11-16 01:36:44
【问题描述】:

我想在按钮弹出窗口中使用 CalendarDatePicker,如下所示:

<Button>
   <Button.Flyout>
      <Flyout>
         <StackPanel>
             <CalendarDatePicker x:Name="calendar"></CalendarDatePicker>                                          
             <Button Click="Button_Click">Save</Button>
         </StackPanel>
      </Flyout>
   </Button.Flyout>
</Button>

但是当我点击日历时,整个 Flyout 就会消失。我的目标是 Windows 10 UWP 应用程序。任何想法如何解决它?谢谢。

【问题讨论】:

    标签: c# xaml uwp


    【解决方案1】:

    您可能无法在 Flyout 中使用 CalendarDatePicker - 一旦您选择一个选项,弹出窗口就会关闭,在这种情况下,一旦您单击控制显示日历,弹出窗口与打开的日历一起关闭(如果您按住控件,您甚至可能会看到一段时间)。在这种情况下,您可以使用例如 PopupContentDialog

    XAML:

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Button Name="showCalndarButton" Content="Show PopUP" Click="showCalndarButton_Click"/>
        <Popup Name="calendarPopup">
            <StackPanel>
                <CalendarDatePicker x:Name="calendar"></CalendarDatePicker>
                <Button Click="Button_Click">Save</Button>
            </StackPanel>
        </Popup>
    
        <ContentDialog Name="calendarDialog">
            <StackPanel>
                <CalendarDatePicker x:Name="secondCalendar"></CalendarDatePicker>
                <Button Click="Button_Click">Save</Button>
            </StackPanel>
        </ContentDialog>
    </Grid>
    

    后面的代码:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        // some logic
    
        // calendarPopup.IsOpen = false;
        calendarDialog.Hide();
    }
    
    private async void showCalndarButton_Click(object sender, RoutedEventArgs e)
    {
        // calendarPopup.IsOpen = true;
        await calendarDialog.ShowAsync();
    }
    

    在这种情况下 - ContentDialogPopup,您必须自己设计。

    【讨论】:

    • 好的,如果按钮在 ListView DataTemplate 中怎么办?
    • @Vodáček 我认为您应该能够从定义列表视图的数据模板中公开点击事件,并执行相同操作。您可能还可以为数据模板构建一个用户控件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 2013-07-14
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多