c#wpf)如何故意打开Datepicker的日历?

时间:2016-03-17 11:10:12

标签: c# wpf datepicker calendar

我想知道的很简单。如果我单击DatePicker,日历将在下方打开并覆盖其他不可见的内容。

我尝试搜索属性和互联网,stackoverflow但未能找到解决方案。有没有一个简单,容易的解决方案来解决这个问题?

我一直非常欣赏stackoverflow的优秀人才。 非常感谢你!

1 个答案:

答案 0 :(得分:1)

您需要调整DatePicker控件的控件模板才能完成此操作。

首先获取原始控件模板的副本。您将从原始模板开始,仅编辑要更改的内容。最简单的方法是使用Blend。

  • 在Blend中打开您的项目
  • 右键单击DatePicker控件
  • 单击“编辑模板”,然后单击“编辑副本”
  • 创建一个新的资源字典(底部是新的...)并选中单选按钮以将模板保存在其中。

现在打开刚刚创建的新文件,然后按如下方式编辑模板。改变这个:

<Popup x:Name="PART_Popup" AllowsTransparency="True" Placement="Bottom" PlacementTarget="{Binding ElementName=PART_TextBox}" StaysOpen="False"/>

对此:

<Popup x:Name="PART_Popup" AllowsTransparency="True" Placement="Top" PlacementTarget="{Binding ElementName=PART_TextBox}" StaysOpen="False"/>

给模板一个好名字:

x:key="MyCustomDatePicker"

然后按如下方式更新您的DatePicker:

<DatePicker
    ...
    Template="{StaticResource MyCustomDatePicker}"
    ... />