Я создаю приложение WPF и хочу, чтобы мое окно было без полей, а также можно изменять размер только сверху.Как изменить размер окна без полей сверху?
То, что я пытался до сих пор
Первоначально я думал, что это будет работать:
<Window x:Class="WpfApplication3.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Width="200" Height="150" WindowStyle="None" ResizeMode="CanResize" AllowsTransparency="True" BorderThickness="0,5,0,0" BorderBrush="Black"> <Grid Background="Gray" /> </Window>
Я сделать получить окно только с верхней границей, но я не могу изменить его.
Затем я попытался
WindowChrome.ResizeGripDirection="Top"
сResizeMode="CanResizeWithGrip"
.<Window ... WindowStyle="None" ResizeMode="CanResizeWithGrip" AllowsTransparency="True" WindowChrome.ResizeGripDirection="Top" BorderThickness="0,5,0,0" BorderBrush="Black"> ... </Window>
Это не работает, либо (не может изменить размер от верхней границы), и захват даже не появляется на вершине. Он остается в нижнем правом углу (I может изменить размер с захватом, хотя).
This answer кажется, отвечающего изначально может быть сделано, но код недоступен.
- This answer имеет ссылку на blog post, я не очень хочу попробовать, потому что я хотел бы получить решение без кода.
И тогда есть this answer:
Я получаю сообщение об ошибке при таком подходе:
<Window ... WindowStyle="None" ResizeMode="CanResizeWithGrip" AllowsTransparency="False"> <Grid Background="Gray" /> <Setter Property="WindowChrome.WindowChrome"> <Setter.Value> <WindowChrome CornerRadius="0" GlassFrameThickness="1" UseAeroCaptionButtons="False"/> </Setter.Value> </Setter> </Window>
Свойство 'Содержание' установлено более одного раза.
С кодом позади:
<Window ... WindowStyle="None" ResizeMode="CanResize" AllowsTransparency="False"> <Grid Background="Gray" /> </Window>
В конструкторе:
WindowChrome chrome = new WindowChrome(); chrome.CornerRadius = new CornerRadius(0); chrome.GlassFrameThickness = new Thickness(0, 1, 0, 0); chrome.UseAeroCaptionButtons = false;
Который дает мне:
И это может быть изменен от всех направлениях s. И I только хочу, чтобы иметь возможность изменять размер сверху. (Сюрприз: я даже не назначил новый объект
chrome
на что-либо. Как это работает? Это другой вопрос, который я предполагаю).
Вопрос
Как сделать полей окно , который может быть изменен только с верхней границы? (Лучше, если я могу сделать это только с верхней границей, цвет которой можно изменить).