2015-11-15 28 views
0

我想用CalendarDatePicker彈出按鈕裏面是這樣的:CalendarDatePicker內彈出按鈕

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

但是當我點擊日曆整個彈出按鈕消失。我針對Windows 10 UWP應用程序。任何想法如何解決它?謝謝。

回答

0

你可能將無法使用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(); 
} 

在這種情況下 - 無論是ContentDialog彈出,你將不得不自己設計。

+0

好吧,如果按鈕是在ListView DataTemplate裏面? –

+0

@Vodáček我認爲你應該能夠暴露datatemplate中的click事件,你的listview被定義在那裏,並且執行相同的操作。你也可以建立一個用於datatemplate的UserControl。 – Romasz