【问题标题】:c# wpf) how to open calendar of Datepicker to upside intentionally?c# wpf) 如何故意打开Datepicker的日历向上?
【发布时间】:2016-03-17 11:10:12
【问题描述】:

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

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

我一直非常感谢 stackoverflow 的优秀人员。 非常感谢!

【问题讨论】:

    标签: c# wpf datepicker calendar


    【解决方案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}"
        ... />
    

    【讨论】:

    • 乍一看,这对我来说很难,因为我的专业只是生物化学,直到这个时候才使用过Blend。但是,我仔细尝试了 Blend(跟随你),你的解决方案效果很好。我对你最深的谢意!非常感谢!
    猜你喜欢
    • 2013-12-17
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2016-10-08
    • 1970-01-01
    相关资源
    最近更新 更多