gpt4 book ai didi

c# - WP7 silverlight自定义控件使用弹窗

转载 作者:行者123 更新时间:2023-11-30 18:43:41 24 4
gpt4 key购买 nike

我正在创建一个自定义日期选择器,我有一个文本框,单击它后会在弹出窗口中打开一个日历。我想做的是更改弹出窗口的大小,以便它显示我的整个日历,但我无法更改它...,我尝试使用高度、宽度、最小高度、最小宽度...但它没有' 工作,弹出窗口继续以固定大小显示。

问题是我的弹出窗口的父属性没有被评估,因为它有表达式问题(根据调试器),所以我确定我的弹出窗口的父属性不是主屏幕(比如布局网格)。

例如,如何让我的弹出窗口在特定上下文中打开?我的这部分代码不是 XAML,它只是 C# 代码,它看起来像:

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Controls.Primitives;

namespace CalendarBranch.components
{
public class wpDatePicker:TextBox
{
private CalendarPopup calendar;
private Popup popup;

public wpDatePicker()
{
this.calendar = new CalendarPopup();
this.popup = new Popup();

this.popup.Child = this.calendar;
this.popup.Margin = new Thickness(0);

this.MouseLeftButtonUp += new MouseButtonEventHandler(wpDatePicker_MouseLeftButtonUp);

this.calendar.onDateSelect += new EventHandler(onDateSelected);

this.IsReadOnly = true;

}

protected void wpDatePicker_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
this.popup.Height = this.calendar.Height;
this.popup.Width = this.calendar.Width;
this.popup.HorizontalAlignment = HorizontalAlignment.Center;
this.popup.VerticalAlignment = VerticalAlignment.Center;
this.popup.HorizontalOffset = 0;
this.popup.VerticalOffset = 0;
this.popup.MinHeight = this.calendar.Height;
this.popup.MinWidth = this.calendar.Width;

this.popup.IsOpen = true;
}

private void onDateSelected(Object sender, EventArgs ea) {
this.Text = this.calendar.SelectedValue.ToShortDateString();
this.popup.IsOpen = false;
}

}
}

PS:Calendar 类只是一个 UserControl,它包含一个具有多列的网格、HyperLinkBut​​tons 和 TextBlocks,所以没有什么特别的。

提前谢谢你们;)

干杯米劳德 B.

最佳答案

Popup 控件会自行调整大小以适应其中的内容。例如,如果您将 Popup 的子级设置为 StackPanel,并将宽度/高度设置为 100,则弹出窗口将为 100x100。

因此,重要的不是设置弹出窗口的大小,而是设置内部面板的大小。尝试将您的内容包装到堆栈面板中,并在那里分配必要的宽度/高度。

关于c# - WP7 silverlight自定义控件使用弹窗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4022575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com