WPF中文本的外斜面效果

时间:2010-12-02 11:57:20

标签: .net wpf wpf-controls

是否可以将外斜角效果应用于WPF中的标签文本?

alt text

就我而言,Glow效应应该足够了:

alt text

5 个答案:

答案 0 :(得分:5)

这是一种在Text上获得Glow效果的方法。使用提供Stroke的this link中的OutlinedText控件。

alt text

<local:OutlinedText FontSize="100"
                    Fill="Black"
                    Bold="True"
                    Stroke="White"
                    StrokeThickness="3"
                    Text="Glow">
    <local:OutlinedText.Effect>
        <DropShadowEffect ShadowDepth="0"
                          Color="White"
                          Opacity="1"
                          BlurRadius="12"/>
    </local:OutlinedText.Effect>
</local:OutlinedText>

<强>更新
这是我最接近斜角效果但它不能很好地工作。使用this link的方法。

alt text

<Style x:Key="ContentControlStyle1" TargetType="{x:Type ContentControl}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ContentControl}">
                <Grid>
                    <TextBlock Name="Highlight" Foreground="#66FFFFFF" Text="{TemplateBinding Content}" />
                    <TextBlock Name="Shadow" Margin="0,4,0,0" Foreground="#CC000000" Text="{TemplateBinding Content}"/>
                    <ContentPresenter Margin="0,2,0,0"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

<ContentControl Style="{DynamicResource ContentControlStyle1}" FontSize="101" Foreground="DarkGray" Content="Bevel"/>

答案 1 :(得分:3)

我对这个'解决方案'并不是特别满意:

<TextBlock Text="Hello World!" Foreground="Red">
   <TextBlock.Effect>
      <BlurEffect Radius="1" KernelType="Box" />
   </TextBlock.Effect>
</TextBlock>
<TextBlock Text="Hello World!" />

其他选项是制作自己的像素着色器,我不是很擅长,所以我担心我无法帮助你:/

编辑:更好的解决方案,但仍然不是斜角。

<TextBlock Text="Hello World!">
   <TextBlock.Effect>
      <DropShadowEffect BlurRadius="2" Color="Red" Direction="0" ShadowDepth="0" />
   </TextBlock.Effect>
</TextBlock>

答案 2 :(得分:0)

据我所知,这可以起作用:

<Label Content="Hi there!">
<Label.BitmapEffect>
<OuterGlowBitmapEffect/>
</Label.BitmapEffect>
</Label>

我没有在标签上测试过这个,但我在其他控件和形状中为我工作过,同时,查看IntelliSense为您提供的所有效果列表:)

答案 3 :(得分:0)

啊,好吧,我更了解你的问题。

尝试这样的事情:

<Grid>
   <Grid.Resources>
       <OuterGlowBitmapEffect GlowColor="Blue" GlowSize="5" x:key="Glow" />
   </Grid.Resources>
   <Label Content="Blah!" BitmapEffect="{StaticResource Glow}" />
</Grid>

我得到“Blah!”带着蓝色的光芒。看起来像一个体面的工作,因为Label的内容不能设置两次。

希望有所帮助!

编辑:除非您使用Framework 3.5,否则这将不起作用,因为BitmapEffect已被弃用。 :(

答案 4 :(得分:0)

Followintg Oggy的建议:

<Label.Effect>
    <DropShadowEffect BlurRadius="5" 
                      Color="Red" 
                      Opacity="1" 
                      ShadowDepth="0" />
</Label.Effect>