2016-07-25 21 views
0
私はスクロールバーのようなリンゴのために、次のスタイルを使用してい

WPFスクロールバーのスタイル

    <Track x:Name="PART_Track" Grid.Row="0" IsDirectionReversed="true" Focusable="false"> 
         <Track.Thumb> 
          <Thumb x:Name="Thumb" Background="{TemplateBinding Foreground}" Style="{DynamicResource ScrollThumbs}" /> 
         </Track.Thumb> 
         <Track.IncreaseRepeatButton> 
          <RepeatButton x:Name="PageUp" Command="ScrollBar.PageDownCommand" Opacity="0" Focusable="false" /> 
         </Track.IncreaseRepeatButton> 
         <Track.DecreaseRepeatButton> 
          <RepeatButton x:Name="PageDown" Command="ScrollBar.PageUpCommand" Opacity="0" Focusable="false" /> 
         </Track.DecreaseRepeatButton> 
        </Track> 
       </Grid> 

       <ControlTemplate.Triggers> 
        <Trigger SourceName="Thumb" Property="IsMouseOver" Value="true"> 
         <Setter Value="{DynamicResource ButtonSelectBrush}" TargetName="Thumb" Property="Background" /> 
        </Trigger> 
        <Trigger SourceName="Thumb" Property="IsDragging" Value="true"> 
         <Setter Value="{DynamicResource DarkBrush}" TargetName="Thumb" Property="Background" /> 
        </Trigger> 

        <Trigger Property="IsEnabled" Value="false"> 
         <Setter TargetName="Thumb" Property="Visibility" Value="Collapsed" /> 
        </Trigger> 
        <Trigger Property="Orientation" Value="Horizontal"> 
         <Setter TargetName="GridRoot" Property="LayoutTransform"> 
          <Setter.Value> 
           <RotateTransform Angle="-90" /> 
          </Setter.Value> 
         </Setter> 
         <Setter TargetName="PART_Track" Property="LayoutTransform"> 
          <Setter.Value> 
           <RotateTransform Angle="-90" /> 
          </Setter.Value> 
         </Setter> 
         <Setter Property="Width" Value="Auto" /> 
         <Setter Property="Height" Value="8" /> 
         <Setter TargetName="Thumb" Property="Tag" Value="Horizontal" /> 
         <Setter TargetName="PageDown" Property="Command" Value="ScrollBar.PageLeftCommand" /> 
         <Setter TargetName="PageUp" Property="Command" Value="ScrollBar.PageRightCommand" /> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

これは、両方のスクロールバーがでているときという偉大な、唯​​一の問題を探しますアクションには、デザインの残りの部分にはない長方形のスポットがあります。私はそれがどこから来ているのか、私がしなければならないスタイルの変更がわからない。 unwanted white rectangle

2つのスクロールバーが会う角に白い矩形があります。その矩形がどのように見えるかを制御したいと思っています。どのようなスタイルの変更を行う必要がありますか?

+0

'ScrollBar'を含む要素の' Background'色を 'ScrollBar.Background'と同じ色に設定しようとしましたか? – Meloviz

+0

'ScrollViewer'の' ScrollBar'の寸法は、テンプレートのそれぞれの 'Viewport'サイズ(例えば、垂直の' ViewportHeight')に設定されます。そのサイズは、他の 'ScrollBar'の幅または高さを減算するので、常にその角に小さな四角形が残されます。 – Meloviz

答えて

0

@Anonymous Cowardからのこの回答を使用すると、ScrollViewerのテンプレートを自分で見ることができ、私のコメントで私が言ったことを見ることができます。

using(FileStream stream = new FileStream("ScrollViewerTemplate.xml")) 
using(StreamWriter writer = new StreamWriter(stream)) 
{ 
    writer.WriteLine(System.Windows.Markup.XamlWriter.Save(
     new ScrollViewer() {Content = new TextBlock() {Text = "Template"}})); 
} 

ちょっとした編集(改行を追加)する必要があるかもしれませんが、要点はわかります。これは、ScrollBarScrollViewerViewportHeight/ViewportWidthにテンプレートバインドされていることを示しています。これは、推測できる通り、ScrollBarを含まない表示コンテンツのサイズです。

ので、そのすべてを与えられた、私はちょうど含む要素のがScrollBarの背景とBackground(多分それはScrollViewer?です)に変更、デザインでそのブロックをインラインで維持することをお勧めします。

関連する問題