通过后面的代码动态对齐 Datepicker 按钮和 Datepicker 的日历
Posted
技术标签:
【中文标题】通过后面的代码动态对齐 Datepicker 按钮和 Datepicker 的日历【英文标题】:To align the Datepicker button and calender of Datepicker dynamically through code behind 【发布时间】:2018-11-13 11:16:00 【问题描述】:我的要求是在DatePicker
控件中将DatePicker
按钮和日历对齐到最右侧(仅通过后面的代码)。我正在创建一个DatePicker
控件,如果数据类型是日期,则该控件会动态生成。
这是当前的代码:
if (type.ToLower() == "date")
control = new DatePicker();
(control as DatePicker).Name = name;
(control as DatePicker).FontSize = 24;
(control as DatePicker).FontWeight = FontWeights.Light;
(control as DatePicker).MinWidth = 450;
(control as DatePicker).HorizontalContentAlignment = HorizontalAlignment.Left;
(control as DatePicker).VerticalAlignment = VerticalAlignment.Center;
只是想知道,我应该写什么额外的东西来保持DatePicker
按钮在右边,这样
日历也应该在右侧打开,即DatePicker
按钮的底部。
【问题讨论】:
【参考方案1】:不要设置Left
的HorizontalContentAlignment
属性。如果您避免这样做,日历按钮将最终位于TextBox
的右边缘。
如果您希望日历显示在按钮下方,您可以处理DatePicker
的Loaded
事件并在模板中设置Popup
的PlacementTarget
属性:
(control as DatePicker).FontSize = 24;
(control as DatePicker).FontWeight = FontWeights.Light;
(control as DatePicker).MinWidth = 450;
(control as DatePicker).VerticalAlignment = VerticalAlignment.Center;
(control as DatePicker).Loaded += (ss, ee) =>
DatePicker dp = (DatePicker)ss;
System.Windows.Controls.Primitives.Popup popup = dp.Template.FindName("PART_Popup", dp) as System.Windows.Controls.Primitives.Popup;
Button button = dp.Template.FindName("PART_Button", dp) as Button;
if (popup != null && button != null)
popup.PlacementTarget = button;
;
【讨论】:
只是想从你这里知道,我怎样才能让按钮(PART_Button)看起来更大。我尝试通过设置 button.Height 来增加高度,但没有成功。 如果您还有其他问题,请提出新问题。以上是关于通过后面的代码动态对齐 Datepicker 按钮和 Datepicker 的日历的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI iOS 14 中 DatePicker 的中心对齐
jQuery TOOLS datepicker - 单击按钮后打开日历
通过asp.net中的代码向网页添加按钮并删除动态数据库条目