2012-11-23 20 views
1

我有一個DrawingImage,我從SVG由宏偉的Svg2Xaml plugin轉換。這樣我可以讓用戶在我的應用程序中輕鬆定義一些元素的視覺效果。在WPF中重繪着一個給定的DrawingImage(代碼中)

有一些用例,我想重新給給定的DrawingImage重新着色。最簡單的情況是使其灰度。

是否有一種遞歸遍歷所有元素的方法,獲取它們的顏色並將其切換到它們的灰度對應物?或者 - 例如 - 在整個圖像上使用類似「過濾器」的東西?

我對WPF並不是很有經驗,但是如果這樣做可以讓我的工作變得更容易。

什麼是我最好的選擇?

此外,DrawingImage使用矢量圖形很重要,所以我不想像素化圖像。

+2

對於製作一個視覺灰度的具體情況,你可能想看一看[Shader Effect Li brary](http://wpffx.codeplex.com/) –

+0

@HighCore謝謝。它似乎適合我的需求,我現在要去測試它。 – SoonDead

回答

1

我的評論轉換爲一個答案:

用於製作視覺灰度的特定情況下,你可能想看看Shader Effect Library

+0

有沒有辦法在VS2012中重建WPF項目?在codeplex頁面上沒有指導,我開始對此感到困惑。 – SoonDead

+0

另外,我不太清楚如何在代碼中執行我想要的操作。你能嘲笑最小的東西嗎? – SoonDead

1

ü可能需要看看WPF 資源字典,並使用DynamicResource

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

    <Color x:Key="FrontColor">White</Color> 

    <SolidColorBrush x:Key="Foreground" Color="{DynamicResource FrontColor}" /> 
</ResourceDictionary> 
+0

對不起,如果這個問題沒有足夠的描述。 DrawingImage沒有ResourceDictionaries,因爲它是由鏈接庫創建的。另外,我不想在加載它之後立即更改顏色,所以DynamicResource可能會超調,因爲DrawingImage甚至不可見。如我錯了請糾正我。 – SoonDead

相關問題