如何在wpf中设置日历控件的Z-index [英] How to set Z-index of calender control in wpf
问题描述
在这里我被困在 wpf 日历控件中.我在 WPF 中使用日历控件但是当我在 TextBox
的 GotFocus
事件上调用它时,例如
Here i am stuck in wpf calender control.I am using a calender control in WPF but when i call it on GotFocus
event of TextBox
like
private void txtjobdate_GotFocus(object sender, RoutedEventArgs e)
{
calendar1.Visibility = Visibility.Visible;
}
它总是显示在其他控件的后面,例如
It always show behind the other controls like
xaml 代码
<Window x:Class="PhotoSaver.PhotoGraphyJob_Management.AddEditPhotoGraphyJob"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="AddEditPhotoGraphyJob" Height="387" Width="511" xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors">
<Grid>
<GroupBox>
<GroupBox.Header>
<Label>PhotoGraphy Job</Label>
</GroupBox.Header>
<Calendar Height="170" Name="calendar1" Width="180" Visibility="Hidden" SelectedDatesChanged="calendar1_SelectedDatesChanged" AllowDrop="True" />
</GroupBox>
<dxlc:LayoutItem Label="Job Name" Margin="92,39,149,0" Name="JobName" Height="20" VerticalAlignment="Top" LabelPosition="Left" LabelHorizontalAlignment="Center" LabelVerticalAlignment="Center" ElementSpace="5" >
<dxe:TextEdit Name="txtjobname" />
</dxlc:LayoutItem>
<dxlc:LayoutItem Label="Job Date" Margin="96,78,149,0" Name="JobDate" Height="20" VerticalAlignment="Top" LabelPosition="Left" LabelHorizontalAlignment="Center" LabelVerticalAlignment="Center" ElementSpace="5" >
<dxe:TextEdit Name="txtjobdate" DataContext="{Binding}" GotFocus="txtjobdate_GotFocus" />
</dxlc:LayoutItem>
<dxlc:LayoutItem Label="Image Folder" Margin="75,117,149,0" Name="ImageFolder" Height="20" VerticalAlignment="Top" LabelPosition="Left" LabelHorizontalAlignment="Center" LabelVerticalAlignment="Center" ElementSpace="5" >
<dxe:TextEdit Name="txtimagefolder" />
</dxlc:LayoutItem>
<Button Content="Browse" Height="23" HorizontalAlignment="Left" Margin="356,114,0,0" Name="Browse" VerticalAlignment="Top" Width="75" Click="Browse_Click" />
<Button Content="Update" Height="23" HorizontalAlignment="Left" Margin="151,181,0,0" Name="Update" VerticalAlignment="Top" Width="75" Panel.ZIndex="1" />
<Button Content="Clear" Height="23" HorizontalAlignment="Left" Margin="265,181,0,0" Name="Clear" VerticalAlignment="Top" Width="75" />
</Grid>
</Window>
请指导我如何通过在其他控件上方显示日历控件来解决此问题.
Please guide me that how i can solve this problem by showing calender control above the other controls.
希望大家理解我的问题并指导我.
Hope you all understand my question and guide me.
提前致谢.
推荐答案
1) 右键单击日历对象 --> 订单 --> 置于最前面.
1) Right click the calendar object --> Order --> Bring to front.
2) 或者,只需将 GroupBox 项移动到内部声明的底部
(z 顺序是从底部(最高)到顶部(最低).也许有点违反直觉.
2) Alternatively, just move the GroupBox item to the bottom of the declarations inside the
<Grid>
(z-order is bottom (highest) to top (lowest)). Perhaps a bit counterintuitive.
这篇关于如何在wpf中设置日历控件的Z-index的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!