C# 在textblock中的文本上放置阴影

C# 在textblock中的文本上放置阴影,c#,canvas,uwp,C#,Canvas,Uwp,我开发了一个应用程序,在其中我使用了文本块。现在我想在文本上添加阴影,就像给定的图像一样 我使用了模糊效果,但它会产生错误 private async void ok_Click(object sender, RoutedEventArgs e) { br = new Border(); Word_art obvwa = new Word_art(); if (txtbox.Text == "") { var line = new Message

我开发了一个应用程序,在其中我使用了文本块。现在我想在文本上添加阴影,就像给定的图像一样

我使用了模糊效果,但它会产生错误

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 assembly,但它没有包含在我的项目中。

要使用上面的阴影创建
textblock
,您可以使用包装阴影控件的库。您只需为阴影配置
OffsetX
OffsetY
属性,它就会生效。代码如下:

<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>

Lorem ipsum dolor sit amet。

结果是:


有关如何使用
windowsuidevlab
,请下载该软件包并将项目添加到您的解决方案中,添加对项目的引用。您还可以直接在包内运行示例以进行进一步测试。

它会产生什么错误,您的代码看起来像什么,您尝试了什么?var blur=new gaussianblueffect();blur.BlurAmount=5.0f;blur.Source=位图;它提供了缺少的库或程序集引用哪一个提供了错误?请用您的尝试/操作更新您的问题。根据我的基本理解,您正在使用一个名为Win2d(或应该是)的库,如果您得到一个缺少的库/程序集引用错误,那么您包含它的方式就有问题。看起来win2d也只能在Windows 8.1或更高版本上工作(我没有,所以我对您没有什么帮助)。我想看看这篇帖子: