Я создаю пользовательский дампинг, у меня есть текстовое поле, после его нажатия открывается календарь в всплывающем окне. Что я хочу сделать, это изменить размер всплывающего окна, чтобы он показывал весь мой календарь, но я не могу его изменить ... Я пробовал использовать Height, Width, MinHeight, MinWidth ... но это не работает, всплывающее окно продолжает показывать фиксированный размер.WP7 silverlight пользовательский контроль с помощью всплывающего окна
Дело в том, что родительское свойство моего popup не оценивается, так как оно имеет проблемы с выражением (согласно отладчику), поэтому я уверен, что родитель моего всплывающего окна не является основным экраном (например, сеткой макета).
Как я могу, например, открыть всплывающее окно в определенном контексте? Эта часть моего кода не 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: класс календарь просто UserControl, который содержит сетку с несколькими столбцами, HyperLinkButtons и TextBlocks, так что ничего особый.
Спасибо заранее ребята;)
Приветствия Miloud B.
Могу ли я предложить вам быстро ознакомиться с документацией Markdown (справка по правой стороне при редактировании вопроса). – AnthonyWJones
Хорошо. Что относительно * моей проблемы * сейчас? – CoolStraw