Как удалить границу окна WPF при использовании luna или classic?
Когда я показываю окно WPF с WindowStyle="None"
, он отлично выглядит при использовании iso.
Однако, когда я использую луну или классику, она отображает уродливую серая граница шириной около 5 пикселей.
Конечно, если я устанавливаю ResizeMode="NoResize"
, эта граница исчезает, но я хотел бы, чтобы окно изменялось (ResizeMode="CanResize"
).
Другие приложения, отличные от WPF (живая почта, т.е. firefox и т.д.), не отображают эту серая граница, но все еще изменяемы.
Есть ли способ удалить эту границу при изменении размера?
Ответы
Ответ 1
Я использую WPF Customizable Window Essential Window. Здесь мое объявление окна (сокращенно):
<CustomWindow:EssentialWindow
xmlns:aero="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
xmlns:CustomWindow="clr-namespace:CustomWindow;assembly=CustomWindow"
AllowsTransparency="True" Background="Transparent"
ResizeMode="CanResizeWithGrip"
WindowStyle="None"
ShowInTaskbar="True" >
Ответ 2
Попробуйте установить AllowsTransparency значение True в окне.
Ответ 3
Я нашел лучший ответ. Не нужно возиться с ResizeMode. Нет необходимости в вызовах interop. Нет необходимости устанавливать AllowsTransparency, который может иметь побочные эффекты.
<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight="0" ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
Я принял этот ответ из этой темы: Как создать окно WPF без рамки, которая может быть изменена только с помощью захвата?
Я отправляю его здесь для людей, которые приземляются здесь на поиски Google.