WPF中的高级效果?

时间:2011-11-07 00:32:54

标签: c# wpf xaml

我一直试图在WPF中重新创建this GUI,但我遇到了问题:

enter image description here

  • 阴影。主元素上的阴影不显示在填充内部 - 在WPF中使用DropShadowEffect时,它确实如此。到目前为止,我还没有找到解决方案。
  • 背景图片 - 主要元素中有一个轻微的图案,一个对角线。但是在WPF中,我不能使用这样的背景图像。我可能只是遗漏了一些东西。
  • 主要元素(顶部)的轻微插图 - 不容易复制。

所以无论如何,我想我的问题是,如何在WPF中完成这些效果?

1 个答案:

答案 0 :(得分:2)

希望这段代码能指出正确的方向:

<Grid>
    <Border x:Name="Blur"
            BorderThickness="5"
            CornerRadius="5"
            BorderBrush="#7F000000">
        <Border.Effect>
            <BlurEffect Radius="8" />
        </Border.Effect>
    </Border>
    <Border x:Name="Outter"
            BorderBrush="#CCD3D3D3"
            BorderThickness="1"
            CornerRadius="5"
            Margin="2">
        <Border.Background>
            <ImageBrush Viewbox="0,0,45,38"
                        ViewboxUnits="Absolute"
                        Viewport="0,0,45,38"
                        ViewportUnits="Absolute"
                        TileMode="Tile"
                        ImageSource="<SomeImageThatIsATileOfThePattern>"
                        Opacity="0.3"
                        Stretch="Fill" />
        </Border.Background>
    </Border>
    <Border x:Name="Inner"
            BorderThickness="0,1,0,0"
            CornerRadius="5"
            Margin="2,4,2,2"
            BorderBrush="#7FD3D3D3" />
    <ItemsControl Background="HotPink"
                  Margin="11"
                  Height="21" />
</Grid>

结果是:

The result

[我使用了一般图像,只是为了显示重复。原始图像尺寸为W50xH38 - 希望重复是明显的]

使用Viewbox和Viewport的值进行调整以适应您的图像。

当然,ItemsControl不应该是粉红色的背景,它的高度不应该是常数,它是为了演示目的而做的。