Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有DatePicker控件焦点/事件问题的WPF弹出窗口_C#_Wpf_Xaml_Datepicker_Popup - Fatal编程技术网

C# 带有DatePicker控件焦点/事件问题的WPF弹出窗口

C# 带有DatePicker控件焦点/事件问题的WPF弹出窗口,c#,wpf,xaml,datepicker,popup,C#,Wpf,Xaml,Datepicker,Popup,我在xaml视图中有一个WPF切换按钮和弹出控件,它们的设置如下: <ToggleButton Name="ViewMessageHistoryFilterOptionsButton" Style="{StaticResource ViewOptionsButtonStyle}" Content="View Options" Margin="6,4,0,4" Height="24

我在xaml视图中有一个WPF切换按钮和弹出控件,它们的设置如下:

<ToggleButton Name="ViewMessageHistoryFilterOptionsButton"
              Style="{StaticResource ViewOptionsButtonStyle}"
              Content="View Options"
              Margin="6,4,0,4"
              Height="24"
              IsChecked="{Binding IsFilterOptionsMenuOpen}"

              />
<Popup Name="ViewMessageHistoryFilterOptionsPopup" 
       IsOpen="{Binding IsChecked, ElementName=ViewMessageHistoryFilterOptionsButton}" 
       PlacementTarget="{Binding ElementName=ViewMessageHistoryFilterOptionsButton}"
       Placement="Left"
       HorizontalOffset="{Binding ActualWidth, ElementName=ViewMessageHistoryFilterOptionsButton}"
       VerticalOffset="{Binding ActualHeight, ElementName=ViewMessageHistoryFilterOptionsButton}"
       StaysOpen="False"
       >
    <Border BorderThickness="1"
            BorderBrush="#333333">
        <Border.Effect>
            <DropShadowEffect BlurRadius="3" Opacity="0.75"/>
        </Border.Effect>
        <local:MessageHistoryAdvancedFilterView DataContext="{Binding AdvancedFilterVM}" />
    </Border>
</Popup>    
我遇到的问题是,日期选择器上日期选择的弹出窗口出现在弹出窗口的边界之外(和主wpf应用程序),因此当我选择一个日期(当前代码粘贴在此处)时,弹出窗口关闭

我尝试过使用
StaysOpen=“True”
,虽然它“起作用”,但也有一个小问题。如果我这样做:

  • 单击
    切换按钮
    (打开
    弹出窗口
  • 打开日期选择器,就像我要选择一个日期一样
  • 然后点击进入单独的程序(如记事本++、VS、ect)
  • 除非单击
    切换按钮关闭
    弹出窗口
    ,然后重新打开它,否则我永远无法将焦点恢复到
    日期选择器(即,它永远不会更新所选日期)

    有办法解决这个问题吗


    我还尝试手动处理为视图中的弹出窗口、本地视图、日期选择器设置的焦点,但也没有产生预期的结果。

    您是否尝试使用
    showlealog
    打开弹出窗口?它可以防止单击关闭和失去焦点。我几乎总是使用它,因为我通常没有需要与其他窗口同时打开的弹出窗口。您是否尝试过使用
    ShowDialog
    打开弹出窗口?它可以防止单击关闭和失去焦点。我几乎总是使用它,因为我通常不需要弹出窗口来保持与其他窗口同时打开。
    <DatePicker x:Name="StartDatePicker"
        Grid.Row="0"
        SelectedDate="{Binding FilterDateStart, UpdateSourceTrigger=LostFocus}" 
        SelectedDateFormat="Short" 
        Width="28" 
        HorizontalAlignment="Right" 
        VerticalAlignment="Center" 
        BorderThickness="0" 
        Focusable="False" 
        Margin="0,0,1,0"/>