2009-05-20 3 views
3

Из того, что я понимаю, всплывающее окно существует внутри собственного визуального дерева. Тем не менее, я заметил несколько свойств, Clip и ClipToBounds. То, что я хочу сделать, - это визуально обрезать всплывающее окно в правом и нижнем краях окна независимо от того, что всплывающее окно не зависит от границ окна. Я не использую XAML, но если кто-то знает, как это сделать в XAML, тогда все в порядке. Я могу попасть в главное окно с помощью System.Windows.Application.Current.MainWindow. Возможно ли из этого получить значение, которое я могу использовать для создания всплывающего окна? Я предполагаю, что если есть значение, которое я могу использовать, я бы смог привязать обрезку всплывающего окна к этому значению. Это действительно не обязательно, поскольку после всплывающего окна изначально открывается, если окно перемещается или изменяется, всплывающее окно закрывается. Поэтому мне действительно нужно было бы только скопировать всплывающее окно, когда оно откроется. Причина, по которой я хотел бы сделать это, состоит в том, что, хотя я использую всплывающее окно, я не хочу, чтобы оно отображалось как всплывающее окно, которое существует за пределами окна. FYI это для всплывающего календаря для пользовательского поля даты. Любые идеи, а также разъяснение неправильных представлений, которые могут возникнуть у меня, будут весьма признательны.Захват wpf Всплывающее окно в границах главного окна

ответ

0

Я знаю, что это годовая запись, но если другие приходят сюда искать ответы ... Если вам не нужно всплывать, чтобы быть вне вашего окна, зачем использовать всплывающее окно вообще? Было бы гораздо проще просто использовать элемент управления в холсте (например) и управлять им с помощью свойства Visibility. Тогда вы автоматически получите свое обрезание.

+1

Я использую всплывающее окно, чтобы оно накладывало размещенный элемент управления WinForm в приложении WPF. Ничто другое, похоже, не может накладывать Winform, поэтому всплывающее окно является только опцией. Невозможность отображать всплывающие окна за пределами экрана разочаровывает. –

+0

Я использую всплывающее окно, потому что у моего окна есть «» в качестве его корня содержимого с '' внутри, нет очевидного способа отображения индикатора прогресса/активности на вершине 'DataGrid' без' Popup '. – Dai

1

Кроме того, всплывающее окно может быть запущено из пользовательского элемента управления, который не находится непосредственно в главном окне. Поэтому в этом случае было бы проще использовать всплывающее окно. Как и UC внутри XAML

Смежные вопросы