Толстая граница справа и слева

My RibbonWindow Desktop Application показывает толстую черную рамку с обеих сторон в Windows 10. Вы можете воспроизвести это с помощью простого приложения WPF, показывающего RibbonWindow. Граница не отображается в Windows 8.x.

Кто-нибудь знает, как удалить границу?

Какой-то парень задал аналогичный вопрос на msdn, и ответ "это известная проблема". Но следуя предоставленной ссылке, я не могу найти какой-либо конкретной.

Так может кто-нибудь помочь мне в этом?

Изменить: цвет границ - черный, если окно не активно. Если окно активно, граница получает цвет от настроенного цвета акцента окна.

1 ответ

Рассмотрите возможность использования WindowChrome с GlassFrameThickness= GlassFrameCompleteThickness.

Это не идеальное решение - вам нужно тщательно уступить место названию окна, а также кнопкам максимизации, минимизации и закрытия. Тем не менее, он избавляется от пограничной проблемы, с которой вы имеете дело.

Пример того, как управлять компоновкой содержимого, когда WindowChrome используется, см. этот ответ SO.

Вот полный XAML, который также должен помочь:

<ribbonwindow x:class="RibbonTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:RibbonTest" xmlns:shell="clr-namespace:System.Windows.Shell;assembly=PresentationFramework" mc:ignorable="d" title="RibbonWindow" height="350" width="525"> <windowchrome.windowchrome> <windowchrome glassframethickness="{x:Static shell:WindowChrome.GlassFrameCompleteThickness}"> </windowchrome></windowchrome.windowchrome> <window.template> <controltemplate> <grid> <grid.rowdefinitions> <rowdefinition height="30"> <rowdefinition height="1*"> </rowdefinition></rowdefinition></grid.rowdefinitions> <!-- Opacity of < 1.0 helps show the minimize, maximize and close buttons --> <border grid.row="0" background="Wheat" opacity="0.8"> <grid> <grid.columndefinitions> <columndefinition width="30"> <columndefinition width="1*"> </columndefinition></columndefinition></grid.columndefinitions> <!-- Window Title - Center Aligned --> <textblock grid.column="1" textalignment="Center" verticalalignment="Center" text="{Binding Title, RelativeSource={RelativeSource TemplatedParent}}"> </textblock></grid> </border> <!-- This is the Window main content area --> <!-- Top margin 44 = WindowChrome ResizeBorderThickness (4) + CaptionHeight(40) --> <!-- Bottom margin 1 is somewhat arbitrary --> <border grid.row="1" background="White" opacity="0.5"> <contentpresenter content="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}"> </contentpresenter></border> </grid> </controltemplate> </window.template> <grid> <border background="Cyan" borderbrush="BlanchedAlmond" borderthickness="5"> <label fontsize="80" horizontalalignment="Center" verticalalignment="Center">Hello World</label> </border> </grid>
</ribbonwindow>

В результате RibbonWindow будет выглядеть примерно так:

licensed under cc by-sa 3.0 with attribution.