我有一组变换应用于对控件进行奇特的反射。我希望能够将相同的内容应用于其他元素,但我不知道如何将它们组合在一起,并将其作为资源应用。
有人能帮助我吗?这是一些代码,这将转换应用于第一个文本框。它看起来很多,但非常简单,只是一个控件下的矩形,应用了一些变换和其他视觉效果。我想要的是对这个矩形做同样的事情但是把它应用到其他控件(以某种方式参数化绑定。)
<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 :(得分:0)
我认为Adorners
正是您在这里寻找的。它们在自己的图层中的控件上呈现,您可以装饰任何您想要的UIElement,在您的情况下,您将使用已定义这些属性的矩形装饰文本框。关于Adorners的MSDN文章是一个很好的开始,它很容易阅读。
答案 1 :(得分:0)
使用好的旧用户控件怎么样?您想要反映的图形对象是内容。所以要使用它你会做类似的事情:
<Reflect> <TextBlock Text="Wow so much sun" /> </Reflect>
小心控制宽度/高度为宽度+内容和2 *内容高度(可能使用转换器)