2011-06-24 22 views
1

我想從DocumentViewer控件中獲取打印按鈕,以便我可以將圖像用於其他控件。.net在一個控件中使用WPF提取圖形

我知道我可以通過一個屏幕快照和一點點編輯來捕獲按鈕,並使用提取的圖像作爲源。

使用現有的參考圖像會更有效率。

回答

1

運行Peter Blois的snoop.exe。使用鼠標懸停功能獲取包含所需圖形的控件的屬性,然後在窺探中展開可視化樹,直到找到所需的實際圖像。檢查其屬性並找到圖像的源URI。這將告訴你你正在加載哪個程序集和資源名稱。然後,您可以使用相同的源URI來自己提取和保存圖像(例如Like this)。

編輯:這不是在這種情況下的圖像。使用Snoop獲取元素的x:Name,我走到可視化樹,直到我得到PrintButton,並在調試器中檢查它。它使用具有19個獨立圖形的DrawingBrush使打印機圖標分辨率無關。儘管如此,您仍然可以通過使用XamlWriter來保存Button的背景(DrawingBrush),然後您可以自己使用DrawingBrush。

+0

當我想到他們的形象,我想它的價值是「System.Windows.Media.DrawingBrush」,它的來源是「ParentTemplate」。這是否意味着控制生成它自己的圖像? – Threekill

+0

我不認爲這可能是一個有效的圖像URI來源。你想查找實際的圖像 - 應該在Visual Tree中有(圖像)。源應該看起來像這樣:pack:// application:,,,/Microsoft.SomeNameSpace; component/Images/whatever.png –

+0

好吧,看起來他們正在爲DocumentViewer使用ToolBarPanel。讓我看看我能否找到源圖像,給我幾分鐘。 –