如何在 WPF 中的 DatePicker 中获取日历

2024-01-09

我需要参考Calendar in a DatePicker object.

我想象这很容易:

DatePicker datePicker = new DatePicker();
Calendar calendar = datePicker.Calendar;

但没有Calendar财产在DatePicker.

有什么办法可以获取该参考吗?


尝试这个:

private void Window_ContentRendered(object sender, EventArgs e)
{
    // Find the Popup in template
    Popup MyPopup = FindChild<Popup>(MyDatePicker, "PART_Popup");

    // Get Calendar in child of Popup
    Calendar MyCalendar = (Calendar)MyPopup.Child;

    // For test
    MyCalendar.BlackoutDates.Add(new CalendarDateRange(
            new DateTime(2013, 8, 1),
            new DateTime(2013, 8, 10)
    ));
}

Note:总是使用FindChild仅当控件完全加载时,否则它将找不到它并给出null。在本例中,我将此代码放入事件中ContentRendered of Window这表示窗口的所有内容已成功加载。

列表FindChild<>:

    public static T FindChild<T>(DependencyObject parent, string childName) where T : DependencyObject
    {
        if (parent == null)
        {
            return null;
        }

        T foundChild = null;

        int childrenCount = VisualTreeHelper.GetChildrenCount(parent);

        for (int i = 0; i < childrenCount; i++)
        {
            var child = VisualTreeHelper.GetChild(parent, i);
            T childType = child as T;

            if (childType == null)
            {
                foundChild = FindChild<T>(child, childName);

                if (foundChild != null) break;
            }
            else
                if (!string.IsNullOrEmpty(childName))
                {
                    var frameworkElement = child as FrameworkElement;

                    if (frameworkElement != null && frameworkElement.Name == childName)
                    {
                        foundChild = (T)child;
                        break;
                    }
                    else
                    {
                        foundChild = FindChild<T>(child, childName);

                        if (foundChild != null)
                        {
                            break;
                        }
                    }
                }
                else
                {
                    foundChild = (T)child;
                    break;
                }
        }

        return foundChild;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 WPF 中的 DatePicker 中获取日历 的相关文章

  • 即使在 GC Collect 和 WaitForPendingFinalizers 之后,窗口对象在关闭后也未释放?

    这是一个简单的测试应用程序 可帮助了解 WPF 内存使用情况 我想了解的关键是为什么MainWindow即使在关闭并等待 GC 完成之后 仍然被引用并且它的内存没有被释放 参见下面的代码清单 文本 MainWindow Finalizer
  • 使用 INotifyPropertyChanged

    有人可以解释一下为什么在 wpf 中使用绑定时需要使用 INotifyPropertyChanged 的 实现吗 我可以在不实现此接口的情况下绑定属性吗 例如我有代码 public class StudentData INotifyProp
  • 如何在Wpf中的用户控件中调用MahApps Metro对话框

    当我尝试调用 MahApps Metro 对话框时 我在传递值时遇到错误 在传递参数时调用对话框控制时我需要传递 Metrowindow 参数 但我需要在用户控件中调用它 下面是当我需要对话框控制时我将调用的方法 public async
  • 窗口关闭后仍在调用方法

    首先我不知道这是不是一个愚蠢的问题 我有这样的场景 首先我有一个主窗口 public MainWindow InitializeComponent dt is a System Windows Threading DispatcherTim
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 如何从代码隐藏访问ListBox动态创建的项目的属性?

    XAML
  • 如何使 WPF 应用程序在 Web 浏览器上运行

    我们有一个用 WPF 编写的现有应用程序 我们正在寻找一种迁移它的方法 以便它可以在 Web 浏览器上运行 深入研究后 我们似乎需要找到一种将代码编译为 WebAssembly 的方法 但我不确定它对于现有的完全加载的 WPF 应用程序有多
  • Wpf TextBlock 中的垂直文本

    是否可以垂直显示 TextBlock 中的文本 以便所有字母彼此堆叠 不使用 LayoutTransform 旋转 还没有人提到使用纯 XAML 垂直堆叠任意字符串的字母 不旋转它们 的明显而简单的方法
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • ScrollViewer 滚动条始终禁用

    我是 xaml 和 wpf 的新手 我正在尝试将一些用户控件从代码隐藏插入到容器中 我已阅读此博客文章MSDN http blogs msdn com b marcelolr archive 2009 06 09 stackpanel do
  • Android:在对话框中使用日期选择器和时间选择器

    我面临一个我不知道如何解决的问题 我有一个活动 当我单击链接到该活动的菜单的特定项目时 会显示一个对话框 用于添加项目 该项目有日期和时间 但我无法获得DatePicker and TimePicker在此对话框中 我还尝试将活动传递给对话
  • 如何在wpf中翻转图像

    我最近学习了如何使用 TransformedBitmap 和 RotateTransformed 类旋转 BitmapImage 现在我可以对图像进行顺时针旋转 但如何翻转图像呢 我找不到执行 BitmapImage 水平和垂直翻转的类 请
  • WPF控件默认大小

    为 wpf 应用程序定义自定义资源主题时 我可以设置宽度 高度等 如何找到这些属性的默认值 即框架中提供的控件中使用的值 WPF 控件通常不包含任何类型的默认大小 WPF 的主要功能点之一是 除非您指定大小 否则所有内容都会动态调整大小 如
  • PreviewKeyDown 不会在 ElementHost 中针对 Tab 和箭头键触发

    我在 Winforms ElementHost 中有一个 WPF 窗口 我的窗口上的 Tab 键和箭头键不会触发 KeyDown 和 PreviewKeyDown 事件 KeyUp 和 PreviewKeyUp 似乎工作正常 Preview
  • jQuery:如何将 jQuery 日期选择器放入 Bootstrap Popover 中? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我试图在引导弹出窗口中显示 jquery datepicker 并尝试了解决方案引导程序弹出窗口内的日期选择器 关闭 https
  • WPF 创建同级窗口并关闭当前窗口

    我需要的是我的窗口类中的这样一个事件处理程序 void someEventHandler object sender RoutedEventArgs e MyNewWindow mnw new MyNewWindow mnw Owner W
  • 在 Primefaces 中以编程方式创建命令按钮

    我正在尝试创建一个带有输入文本和命令按钮的动态表单 一切正常 但是当我单击命令按钮时 永远不会调用操作侦听器 请提出我做错了什么或者这是否是 PF 或 Mojarra 的错误 代码如下 panel new Panel panel setHe
  • 更改其他页面的主窗口内容

    在 WPF 应用程序的主窗口中 我有一个 Badged 元素 来自材料设计 这是我的代码
  • wpf,如何限制TextBox的MaxLength?

  • WPFToolkit.Extended - 工具在哪里?

    我已采取的步骤 我正在使用 NET 4 0 我得codeplex http wpftoolkit codeplex com releases view 84227并下载了第一个 扩展 WPF 工具包二进制文件 2 号将此文件 Extende

随机推荐

  • 为什么部分与页面高度不匹配?

    我正在编写一个报告 该报告需要附加到另一个报告以生成更大的报告 因此它只有标题 页脚和摘要部分 问题是我遇到编译错误 但我不知道原因 这是我的jrxml文件 包含的部分 为简洁起见省略
  • stopPropgation 是否会阻止事件在捕获阶段传播?

    我在看http www quirksmode org js events order html http www quirksmode org js events order html这部分含糊不清 在 Microsoft 模型中 您必须设
  • python中的打印函数对可以打印的字符串长度有限制吗?

    我正在尝试打印一个大字符串 它的大小为 100 Mb 并且需要一次完成 看起来它正在被截断 虽然这不能回答您的问题 但用于移动大量数据print可能是一个坏主意 print is meant用于简短的信息打印输出 它提供了您在移动大数据时通
  • Kotlin / Android Studio - 如何将变量从覆盖 fun 传递到应用程序的其余部分?

    我环顾四周 没有找到解决我的问题的好答案 在我的应用程序上 我有一个计时器 该计时器在单击后停止 我想根据剩余时间计算分数 我可以使用 millisUntilFinished 来计算分数 但我无法在我的应用程序中重用分数变量 您能帮我找到正
  • 限时试用和 Windows 认证

    如果您想对某个应用程序实施限时试用 您可能需要留下一些标志 注册表项 文件等 这样程序就不能被重新安装 是否有任何方案可以让您在完成此操作的同时仍然通过各种 Windows 认证计划 一般来说 申请必须正确 完整 从机器上卸载 这 包括删除
  • ffmpeg - 生成 moov 原子

    我目前正在使用blackmagic的prorecorder录制视频 我使用 ffmpeg 将视频即时转码为 mp4 视频容器 持续时间未知 因为我正在对 prorecorder 输出到命名管道的 ts 进行转码 我的目标是尝试使用浏览器播放
  • 如何在spark中合并两个预排序的rdd?

    我有两个大型 csv 文件 按其中一列进行了预排序 有没有办法利用它们已经排序的事实来更快地获得新的排序 RDD 而无需再次完全排序 简短的回答 不 在使用 Apache Spark 提供的排序工具时 无法利用两个输入 RDD 已经排序的事
  • jqgrid加载大数据集而不分页

    我想知道是否有更好的方法从服务器加载大型 Json 数据集 我使用 jqgrid 作为 loadonce true 我需要一次加载大约 1500 条记录 而且我不使用分页选项 有没有更好的方法来实现这一目标 先感谢您 这是我的网格代码 fu
  • 谷歌表格中填充谷歌表格的平均持续时间

    我有一个从谷歌表单自动填充的谷歌工作表 有一个包含持续时间的列 当我尝试平均这些持续时间时 我得到除以零的错误 我尝试更改单元格格式 但没有任何效果 事实上 无论我选择什么格式 它都不会改变 我认为格式是根据填充工作表的表单来锁定的 对于获
  • 将进程发送到后台并将控制权返回到我的 shell

    我正在为我的 CS 类编写一个 shell 并且该项目的一部分涉及如果用户传入 字符 则在后台运行一个进程 如果一个进程在前台运行 我只需execvp该进程并且它仍然控制着终端 因为它位于前台 但是 如果它是后台进程 我必须在开始执行进程后
  • 无法将函数的数组结果分配给数组

    我正在尝试将函数的数组结果分配给数组 如果我尝试将结果数组的一个元素分配给我的数组 它工作正常 但在尝试将整个结果数组分配给我的数组时它会返回错误 无法分配给数组 Sub test Dim lol 6 as Double lol Hehe2
  • 将存储过程传递给 sp_send_dbmail

    我在 SQL Server 2008 中使用 sp send dbmail 发送查询结果 我将查询移动到一个过程中 并尝试在 sp send dbmail 过程中使用该过程 如下所示 EXEC msdb dbo sp send dbmail
  • 如何为 Foundation 的 Orbit 图像滑块预加载图像?

    使用Zurb的Foundation 4 1 5 最新版本 轨道图像滑块 http foundation zurb com docs components orbit html效果很好 不幸的是 在最初的几秒钟里 所有图像都显示为一个巨大的项
  • 使用groovy Sql批量插入?

    如何在模拟准备好的语句时使用 groovy Sql 进行批量插入 我发现的所有示例都与以下类似 并且不使用准备好的语句 withBatch stmt gt stmt addBatch insert into table field1 fie
  • 从 Eclipse 和 Spark Context 将 Spark 应用程序作为纱线作业提交

    我已经可以提交了local来自我的 Eclipse IDE 的 Spark 作业 用 Scala 编写 但是 我想修改我的 Spark 上下文 在我的应用程序内 以便当我 运行 应用程序 在 Eclipse 内 时 作业将使用 Yarn 作
  • 从服务器导入更改后出现 GIT 错误

    我试图确定为什么网站上的功能可以在本地工作但不能远程工作 所以我的想法是下载远程站点并执行 git diff 以便发现任何差异 然而 自从我这样做以来 所有 GIT 命令都得到满足 fatal Unable to read current
  • R - 如何向 pheatmap 添加线条和文本?

    我正在使用创建热图pheatmap 函数使用以下代码 library pheatmap pheatmap data matrix 1 11 cluster rows F cluster cols F scale none show rown
  • 从用户角度来看,Jenkins 和 Hudson 最显着的区别是什么?

    距 Jenkins 与 Hudson 分手已有 10 个月左右 当查看项目主页时 我想知道 Hudson 和 Jenkins 之间到底有什么区别 从变更日志中我并没有真正学到很多东西 有很多更改 主要区别似乎是 Jenkins 发布频率更高
  • 如何正确传递子进程参数

    我正在尝试自动连接 格式正确的 mp4 视频文件的文件夹 我的问题的这个编辑版本将问题减少到了我困惑的最低水平 原始标题询问了之间的差异subprocess call and subprocess run但事实证明问题出在其他地方 Why
  • 如何在 WPF 中的 DatePicker 中获取日历

    我需要参考Calendar in a DatePicker object 我想象这很容易 DatePicker datePicker new DatePicker Calendar calendar datePicker Calendar