我的RibbonWindow桌面应用程序在Windows 10的两侧显示粗黑边 。您可以通过显示RibbonWindow的简单WPF应用程序重现此问题。 Windows 8.x 上的边框不。
有人知道,如何删除边框?
有些人在msdn上提出了类似的问题,答案是'这是一个已知的问题'。但是按照提供的link我找不到任何具体的内容。
那么有人可以帮我解决这个问题吗?
编辑:如果窗口未激活,边框的颜色为黑色。如果窗口处于活动状态,则边框将从自定义窗口强调颜色中获取颜色。
答案 0 :(得分:2)
考虑将WindowChrome与GlassFrameThickness = GlassFrameCompleteThickness一起使用。
这不是一个理想的解决方案 - 你必须小心地为窗口标题腾出空间,以及最大化,最小化和关闭按钮。也就是说,它确实摆脱了你正在处理的边界问题。
有关如何在使用WindowChrome时管理内容布局的示例,请参阅this 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>
<Window.Template>
<ControlTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="1*"/>
</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*"/>
</Grid.ColumnDefinitions>
<!-- Window Title - Center Aligned -->
<TextBlock
Grid.Column="1"
TextAlignment="Center"
VerticalAlignment="Center"
Text="{Binding Title, RelativeSource={RelativeSource TemplatedParent}}" />
</Grid>
</Border>
<!-- This is the Window's 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}}"/>
</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看起来像这样: