0

私は非常に目を見張るようなプログラムに取り組んでおり、コントロールに反射と3D深度を追加する必要があります。

どちらの場合も、コントロールを数回ペイントする必要がありますが、変更が加えられています。

反射のために、下部のコントロールをもう一度塗り直して、それを裏返す必要があります。

そして、3Dの深さに関しては、+の後ろから横にたくさんのコピーがあります。

問題は、コントロールを変更してその下/後ろにペイントするために、コントロールの画像を取得するにはどうすればよいですか?そのような行動に関する警告や警告/役立つヒントはありますか?(私はこれまでに似たようなことを試したことがありません)。

どうもありがとう。

4

1 に答える 1

2

VisualBrushWPFでは、を別の要素(など)の背景/塗りつぶしとして使用できますRectangle。これVisualBrushには、Visualそのコンテンツを模倣するために別のコントロールにバインドできるプロパティがあります。このコントロールで変換とアルファマスクを使用すると、反射スタイルの効果を適用するのに役立ちます。例えば:

  <StackPanel Width="200">  
    <TextBox x:Name="tb">Hello world</TextBox>
    <Rectangle Height="40" HorizontalAlignment="Stretch">
      <Rectangle.Fill>
        <VisualBrush Visual="{Binding ElementName=tb}"  />
      </Rectangle.Fill>
      <Rectangle.RenderTransform>
        <ScaleTransform CenterY="20" ScaleY="-1" />
      </Rectangle.RenderTransform>
      <Rectangle.OpacityMask>
        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
          <GradientStop Color="#00000000" Offset="0" />
          <GradientStop Color="#FFFFFFFF" Offset="1" />
        </LinearGradientBrush>
      </Rectangle.OpacityMask>
    </Rectangle>
  </StackPanel>
于 2012-09-14T12:45:14.083 に答える