2015-11-22 46 views
5

Moja aplikacja pulpitu wstążki pokazuje pogrubioną czarną obwódkę po obu stronach w systemie Windows 10. Możesz to odtworzyć za pomocą prostej aplikacji WPF, pokazującej RibbonWindow. Granica to nie wyświetlana na Windows 8.x.Grube obramowanie po prawej i po lewej stronie

Czy ktoś wie, jak usunąć granicę?

enter image description here

Jakiś facet zadał podobne pytanie na msdn, a odpowiedź 'to znany problem'. Ale po dostarczeniu link nie mogę znaleźć żadnych konkretnych.

Czy ktoś może mi w tym pomóc?

Edytuj: kolor obramowań jest czarny, jeśli okno nie jest aktywne. Jeśli okno jest aktywne, obramowanie otrzymuje kolor z niestandardowego koloru akcentowanego okna.

+0

podstawie linków pod warunkiem, że wygląda to tak, że , "znany problem". Inny plakat powiedział, że nie używał RibbonWindow, ponieważ jest strasznie nieaktualny. Po zapoznaniu się z niektórymi problemami, jakie ma RibbonWindow, wygląda na to, że Microsoft wiele ich zamknął i ustawił je na "nie naprawią", mimo że są to stosunkowo poważne problemy. Możliwe, że RibbonWindow jest na dobrej drodze do bycia przestarzałym. – Danielle

+0

Przynajmniej RibbonWindow nie jest jeszcze przestarzały. Po linkach nie ma opisu "border-bug". Only: * Zawartość okna (obszar klienta) jest przycinana, gdy okno jest w trybie maksymalizacji. * Obramowanie okna jest zbyt cienkie. * QuickAccessToolbar nie ma wystarczającego "marginesu" na górze. * Tytuł okna jest rozmazany i nie ma wystarczającego "marginesu" na górze. – gReX

+0

https://connect.microsoft.com/VisualStudio/Feedback/Details/1263145 – gReX

Odpowiedz

1

Rozważ użycie WindowChrome z GlassFrameThickness = GlassFrameCompleteThickness.

To nie jest idealne rozwiązanie - trzeba starannie zrobić miejsce na tytuł okna, jak również przyciski maksymalizacji, minimalizacji i zamykania. Powiedziawszy to, pozbywa się problemu granicznego, z którym masz do czynienia.

Aby uzyskać przykład zarządzania układem zawartości, gdy WindowChrome jest używany, zobacz odpowiedź this SO.

Powyżej znajduje się pełna XAML, które powinny pomóc także:

<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> 

Powstały RibbonWindow będzie wyglądać mniej więcej tak:

enter image description here

+0

bardzo ładne. Działa z moim Sample Project :-). Zamiast ustawiania Board na Wheat powiąż go z {DynamicResource {x: Static SystemColors.ActiveBorderBrush}}. Sprawdzam wpływ na moje style. – gReX