Я столкнулся с нечетной ошибкой около месяца.Исчезновение элементов управления WPF после «Упорядочить» с размером бесконечности
У меня есть форма, которая выглядит следующим образом:
Когда я нажимаю на Сохр.картинку:
var g = new Grid();
var mv = new MyControl();
g.Children.Add(mv);
g.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
g.Arrange(new Rect(g.DesiredSize));
var rtb = new RenderTargetBitmap((int)g.ActualWidth, (int)g.ActualHeight,
96, 96, PixelFormats.Pbgra32);
rtb.Render(g);
Вызов Measure() и Arrange() устанавливает размер сетки с правильным размером (получено от MyControl
) Управление формой и пользовательское управление, отображаемое на RenderTargetBitmap
, не имеют общих данных.
Визуальные изображения, которые становятся скрытыми, есть, и данные в виде viewmodel заполняются должным образом.
После выполнения этого кода и снова показывает диалоговое окно выглядит следующим образом:
Оба флажков имеют disappeared.Why ?!
Эта проблема не появляется, если я установить размер сетки (var g
в коде)
var g = new Grid()
{
Width = 1024,
Height = 768
};
@flag для закрытия..Что не ясно в моем вопросе? – Hristo
Вы сами сказали ответ. При создании новой сетки вы должны указать «Ширина» и «Высота», иначе добавить новый элемент управления в существующую сетку. – ViVi
@ViVi Но я называю Measure() и Arrange .. – Hristo