2015-11-15 3 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> 

Но когда я нажимаю на календаре всего Flyout исчезает. Я настраиваю приложение Windows 10 UWP. Есть идеи, как их решить? Спасибо.

ответ

0

Вы, вероятно, не будете в состоянии использовать CalendarDatePicker внутри выпадающого - выпадающей закрыто, как только вы выбираете один из вариантов, в этом случае после нажатия кнопки управления, чтобы показать календарь, плавающий закрыт вместе с открытый календарь (вы можете даже увидеть его некоторое время, если у вас есть контроль). В этом случае вы можете использовать, например, Popup или ContentDialog.

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 и Popup, вы должны разработать самостоятельно.

+0

ОК и что, если кнопка находится внутри DataView? –

+0

@ Vodáček Я думаю, что вы должны иметь возможность выставлять событие клика из datatemplate, где определено ваше представление, и делать то же самое. Возможно, вы также можете создать UserControl для datatemplate. – Romasz

Смежные вопросы