2016-09-22 45 views
0

我开发了一个应用程序,其中使用了文本块。现在我要删除的影子上的文字,如给定的图像对文本块中的文本投下阴影

enter image description here

我用模糊的效果,但它给错误。

private async void ok_Click(object sender, RoutedEventArgs e) 
{ 
    br = new Border(); 
    Word_art obvwa = new Word_art(); 
    if (txtbox.Text == "") 
    { 
     var line = new MessageDialog("PLease enter the text"); 
     await line.ShowAsync(); 
    } 
    else 
    { 
     TB1 = new TextBlock(); 
     TB1.FontSize = txtbox.FontSize; 
     TB1.Foreground = txtbox.Foreground; 

     SolidColorBrush sb = new SolidColorBrush(); 
     var color = sb.Color; 

     TB1.Opacity = 60;     
     TB1.Text = txtbox.Text; 
     var blur = new GaussianBlurEffect(); 
     blur.BlurAmount = 5.0f; 
     blur.Source = TB1.Text; 
     var sitem = stylecombo.SelectedItem as ComboBoxItem; 
     string sitemfm = Convert.ToString(sitem.Content); 
     FontFamily fm = new FontFamily(""+ sitemfm); 
     TB1.FontFamily = fm; 

我试过Microsoft.graphics.effect程序集,但它不包含在我的项目中。

+0

它给出了什么错误,你的代码是什么样的,你试过了什么? –

+0

var blur = new GaussianBlurEffect(); blur.BlurAmount = 5.0f; blur.Source = bitmap; –

+0

它给缺少的库或程序集参考 –

回答

1

要创建带有上述阴影的textblock,您可以使用包装阴影控件的WindowsUIDevLabs库。您只需配置阴影的OffsetXOffsetY属性即可生效。类似的代码如下:

<Page 
... 
xmlns:common="using:SamplesCommon" > 

    <common:CompositionShadow 
     x:Name="shadowcontrol" 
     HorizontalAlignment="Center" 
     VerticalAlignment="Center" 
     BlurRadius="5" 
     OffsetX="-1" 
     OffsetY="-1" 
     ShadowOpacity=".7" 
     Color="Green">  
     <TextBlock 
      Foreground="#6B0F02" 
      FontSize="48" 
      TextWrapping="Wrap"> 
      Lorem ipsum dolor sit amet. 
     </TextBlock>   
    </common:CompositionShadow> 

而结果:

enter image description here

而对于如何使用WindowsUIDevLabs,请下载包和SamplesCommon项目添加到您的解决方案,加参考你的项目。您也可以直接在包装内运行样品进行进一步测试。