簡體   English   中英

如何使用毫米單位而不是像素在 DrawingVisual 中繪制某些內容?

[英]How to draw something in DrawingVisual with millimeter unit instead of pixels?

我試圖在System.Windows.Media.DrawingVisual繪制一些東西,但我需要以毫米為單位繪制細線。 我怎樣才能做到這一點?

在 WPF 中,如果不付出一些額外的努力,您甚至無法以像素為單位繪制某些內容。 WPF 使用“設備獨立單位”,其中每個單位為 1/96 英寸。 即使這只是一個理論上的關系,因為它取決於正確報告其分辨率的顯示設備,而后者又取決於顯示器、其配置以及用戶在“大字體”設置中(即在屏幕分辨率設置,單擊“放大或縮小文本和其他項目”鏈接)。

所有這些都會影響 WPF 對可用顯示分辨率信息的解釋,進而影響 WPF 如何選擇以 1/96 英寸為單位呈現其“設備獨立”。

最重要的是,除非用戶進行大量額外工作和幫助,否則 Sheridan 提供的鏈接評論者確實是最接近以毫米顯示的鏈接。 通過按提供的factor值縮放您的輸入單位(以毫米為單位)(即96/ 25.4 ...在表達式中,您可以看到25.4將毫米轉換為英寸,然后96將英寸轉換為 1/96 英寸),您可以將毫米轉換為 WPF 本機使用的 96 dpi 單位。

假設顯示器配置正確(一個樂觀的假設,但它確實發生了:)),這將根據您所需的基於毫米的尺寸在屏幕上產生相當准確的顯示。


請注意,您可以通過對呈現的 UI 元素使用變換來完成此縮放。 最簡單的方法是設置最外層容器對象的LayoutTransform屬性,您希望在其中進行基於毫米的渲染。 然后,您可以使用毫米值作為對象的位置和大小在該容器中布置對象,WPF 將使用變換以您想要的比例呈現容器和渲染對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM