C# 带有DatePicker控件焦点/事件问题的WPF弹出窗口
我在xaml视图中有一个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
<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”
,虽然它“起作用”,但也有一个小问题。如果我这样做:
切换按钮
(打开弹出窗口
)切换按钮关闭弹出窗口
,然后重新打开它,否则我永远无法将焦点恢复到日期选择器(即,它永远不会更新所选日期)
有办法解决这个问题吗
我还尝试手动处理为视图中的弹出窗口、本地视图、日期选择器设置的焦点,但也没有产生预期的结果。您是否尝试使用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"/>