2011-10-17 10 views
1

のサイズを変更するとき、私はこのようになります光沢のあるパネルの効果を作成しLineSegmentsの角度を維持するためにポリゴンを描画するにはどうすればよい:WPF:私は

<Window x:Class="Window1" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="Window1" Height="200" Width="300"> 
     <StackPanel Orientation="Vertical"> 
      <StackPanel.Background> 
       <DrawingBrush> 
        <DrawingBrush.Drawing> 
         <DrawingGroup> 
          <GeometryDrawing> 
           <GeometryDrawing.Geometry> 
            <RectangleGeometry Rect="0,0,1,1"></RectangleGeometry> 
           </GeometryDrawing.Geometry> 
           <GeometryDrawing.Brush> 
            <SolidColorBrush Opacity="0.5" Color="Blue" /> 
           </GeometryDrawing.Brush> 
          </GeometryDrawing> 
          <GeometryDrawing> 
           <GeometryDrawing.Geometry> 
            <PathGeometry> 
             <PathGeometry.Figures> 
              <PathFigureCollection> 
               <PathFigure IsClosed="True" StartPoint="0,0"> 
                <PathFigure.Segments> 
                 <PathSegmentCollection> 
                  <LineSegment Point="0.3,0" /> 
                  <LineSegment Point="0.2,1" /> 
                  <LineSegment Point="0,1" /> 
                  <LineSegment Point="0,0" /> 
                 </PathSegmentCollection> 
                </PathFigure.Segments> 
               </PathFigure> 
              </PathFigureCollection> 
             </PathGeometry.Figures> 
            </PathGeometry> 
           </GeometryDrawing.Geometry> 
           <GeometryDrawing.Brush> 
            <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5"> 
             <GradientStop Offset="0.0" Color="Transparent" /> 
             <GradientStop Offset="0.7" Color="#58FFFFFF" /> 
             <GradientStop Offset="1.0" Color="#AFFFFFFF" /> 
            </LinearGradientBrush> 
           </GeometryDrawing.Brush> 
          </GeometryDrawing> 
         </DrawingGroup> 
        </DrawingBrush.Drawing> 
       </DrawingBrush> 
      </StackPanel.Background> 
     </StackPanel> 
    </Window> 

Glossy panel

これはXAMLです今度は、このウィンドウの高さを半分の高さに変更すると、光沢は以前とは異なる角度で傾いています。

Resized to half the height

上記のコードはこのように動作するはずですが、私の質問は次のとおりです。ポリゴンセグメントの角度がリサイズ時に保持されるように同じエフェクトを作成するにはどうすればよいですか?ハーフハイトサイズ変更のための所望の最終結果は、次のとおりです。

Desired resize to half the height: angle of the glint is preserved

答えて

1

私は

<DrawingBrush Stretch="UniformToFill"> 
     ... 

はトリックを行うべきだと思います。

+0

これは機能します! 私は左上隅に比べて色合いが良いと思っていましたが、そのような質問はしませんでした。 – SinkovecJ

関連する問題