2011-11-07 41 views
2

我一直想在WPF純粹的重建this GUI,和我有問題:WPF中的高級效果?

enter image description here

  • 陰影。主要元素上的陰影不會顯示在填充內 - 在WPF中使用DropShadowEffect時,它的確如此。到目前爲止,我還沒有找到解決辦法。
  • 背景圖像 - 主元件中有一個微小的圖案,對角線之一。但在WPF中,我不能使用這樣的背景圖像。有機會,我只是想念一些東西。
  • 輕微插圖,在主元件(在頂部) - 不容易被複制。

所以無論如何,我想我的問題是,我怎樣才能在WPF中完成這些類型的效果?

+4

發佈您的代碼! –

+2

我不知道你是如何評價的陰影是什麼,但是如果你不定義陰影元素的背景,其子女將顯示陰影太...所以只定義背景到你應用效果的元素只能在外面看到。 對角線圖案不一定是圖像 - 看這裏http://blog.pixelingene.com/2008/09/quick-tip-to-get-a-striped-background/ 插圖可以模擬通過畫一條線...放大那張圖片,你會看到這只是一條較暗的線條,可以產生這種效果。 – Leo

+0

我記得你試圖隱藏半透明矩形內的陰影。現在,你想要顯示影子?不清楚...請張貼代碼和更多細節(評論)。 – Nayan

回答

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控件和視口的值調整到你的形象。

當然,ItemsControl應該不會有粉紅色的背景和它的高度不應該是一個常數,它用於演示目的已完成。

+0

哇,這太好了!迄今爲止,它的工作非常完美。 :D一個問題:我如何防止模糊的邊界在外部流血? – mattsven

+0

另外,我很難讓這個影子看起來很逼真。 – mattsven