Я создаю пользовательский указатель даты, у меня есть текстовое поле, при нажатии на которое открывается календарь во всплывающем окне.То, что я хочу сделать, это изменить размер всплывающего окна, чтобы он отображал весь мой календарь, но я не могу изменить его ..., я пытался использовать Высота, Ширина, MinHeight, MinWidth ... но это нене работает, всплывающее окно продолжает показываться с фиксированным размером.
Дело в том, что родительское свойство моего всплывающего окна не оценивается, так как оно имеет проблемы с выражением (согласно отладчику), поэтому я уверен, что родитель моего всплывающего окнане главный экран (скажем, сетка макета).
Как, например, открыть всплывающее окно в определенном контексте?Эта часть моего кода не 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, который содержит сетку с несколькими столбцами, HyperLinkButtons и TextBlocks, поэтомуничего особенного.
Заранее спасибо, ребята;)
Приветствия, Милуд Б.