2012-01-04 7 views
0

私は、コントロールのための幻想的な反射を適用するために適用する一連の変換があります。私は他の要素に同じものを適用できるようにしたいが、それをグループ化してリソースとして適用する方法はわかりません。複数のアイテムに同じ反射矩形を適用する方法

誰かが私を助けることができますか?ここにいくつかのコードがあります。これは最初のテキストボックスに変換を適用します。それはかなり見えますが、かなりシンプルです。コントロールの下にある矩形で、いくつかの変形や他の視覚効果が適用されています。私が欲しいのは、この長方形と同じことを行うが、他のコントロールに適用することである(ので何とかバインディングをパラメータ化します。)

 <StackPanel Margin="40"> 
      <TextBlock x:Name="TitleDisp" FontSize="40" FontFamily="Verdana" Opacity="0.8" HorizontalAlignment="Center">Sample Title</TextBlock> 
      <Rectangle Height="{Binding Path=ActualHeight, ElementName=TitleDisp}" Width="{Binding Path=ActualWidth, ElementName=TitleDisp}"> 
       <Rectangle.Fill> 
        <VisualBrush Visual="{Binding ElementName=TitleDisp}"/> 
       </Rectangle.Fill> 
       <Rectangle.RenderTransform> 
        <TransformGroup> 
         <ScaleTransform ScaleY="0.75"/> 
         <SkewTransform AngleX="10" AngleY="8"/> 
         <TranslateTransform X="30" Y="-10"/> 
        </TransformGroup> 
       </Rectangle.RenderTransform> 
       <Rectangle.OpacityMask> 
        <LinearGradientBrush EndPoint="0,1"> 
         <GradientStop Offset="0" Color="Transparent"/> 
         <GradientStop Offset="1" Color="#77000000"/> 
        </LinearGradientBrush> 
       </Rectangle.OpacityMask> 
       <Rectangle.Effect> 
        <BlurEffect/> 
       </Rectangle.Effect> 
      </Rectangle> 
     </StackPanel> 

答えて

0

私はAdornersはあなたがここに探しているものだと思います。彼らは自分のレイヤーのコントロールの上にレンダリングし、あなたが望む任意のUIElementを装飾することができます。その場合は、それらのプロパティが定義されている矩形でテキストボックスを飾るでしょう。 Adornersに関するMSDNの記事は良いスタートで、読みやすいです。

+0

幅+何かと(多分コンバータ付き)コンテンツの2 *高さに調節幅/高さをビングする気をつけて

<Reflect> <TextBlock Text="Wow so much sun" /> </Reflect> 

:だからあなたのような何かをするだろう、それを使用するにはスタイルを適用する方法がわかりません。私はこのスタイルの各要素の後に長方形があることを示唆していますか?もしそうなら、私はそれがどのように別の要素に束縛されるのか分かりません。スタイルをテキストボックスに適用できる場合、私はどのように矩形を作成できるのか分かりません。申し訳ありません、ニュービーはここにあります。 –

+0

@ JessicaBoxer私はあなたが言っていることを見て、私はあなたがここで探しているものだと思います。彼らは自分のレイヤーのコントロールの上にレンダリングし、あなたが望む任意のUIElementを装飾することができます。その場合は、それらのプロパティが定義されている矩形でテキストボックスを飾るでしょう。 Adornersに関するMSDNの記事は良いスタートで、読みやすいです。 – mihajlv

0

古いユーザーコントロールを使用するとどうなりますか?反映させたいグラフィカルオブジェクトはコンテンツになります。私は混乱している