Элементы управления “из окна / chrome” в WPF
-
03-07-2019 - |
Вопрос
Есть ли способ разместить элементы управления / изображения / etc "вне" окна / Chrome (т. Е. стекла Aero) в WPF?
Примером того, что я имею в виду, является WPF Yahoo Messenger который был выпущен (а затем снят с производства) некоторое время назад.WindowStyle выглядит так, как будто для него установлено значение None, но для AllowTransparencies / CanResize установлено значение false / true соответственно - и аватар немного "не в окне / chrome".
Я знаю, что я мог бы создаю свою собственную стеклянную рамку, но это может потребовать изрядных усилий, чтобы она выглядела единообразно.
Решение
Да, я полагаю, вам придется заменить интерфейс window на свой собственный.Вы можете начать с прозрачного окна и сетки внутри, оставив некоторое поле вокруг сетки.Затем поместите большие пальцы, строку заголовка и т.д. На сетку, чтобы имитировать поведение окна.Поля вокруг сетки позволят вам рисовать элементы управления за пределами вашего "окна".
<Window
x:Class="TransparentFormDemo.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window2" Height="300" Width="300"
AllowsTransparency="True"
WindowStyle="None" Background="Transparent">
<Grid Margin="20" Background="AliceBlue">
<Thumb Name="topThumb" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Top"
DragDelta="topThumb_DragDelta" Cursor="SizeNS"/>
<!--Thumbs continued-->
<Polygon Points="10,110 60,10 110,110" Fill="Blue" Margin="0,-30"/>
</Grid>
</Window>