我的xaml视图中有一个WPF Togglebutton和Popup控件,它们的设置如下:
<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>
MessageHistoryAdvancedFilterView
就像一个声音,一个自定义视图。此视图中包含其他各种xaml对象,最明显的是DatePicker
。日期选择器在他们的设置中非常香草:
<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"/>
我遇到的问题是,日期选择器上日期选择的弹出窗口显示在弹出窗口的边界之外( 和主要的wpf应用程序 ),所以当我选择一个日期(当前代码粘贴在这里)弹出窗口关闭。
我已尝试使用StaysOpen="True"
,而且&#34;有效&#34;它带来了一个小问题。如果我执行以下操作:
ToggleButton
(打开PopUp
)DatePicker
,就像我要选择日期一样我可以 从不 重点关注DatePicker
(IE,它永远不会更新所选日期),除非我点击ToggleButton
来关闭PopUp
并重新打开它。
有没有解决方法/修复它?
我还尝试手动处理为视图中的弹出窗口,本地视图,日期选择器设置的焦点,但是还没有产生所需的结果。