2009-03-04 58 views
3

如何確定畫布(具有一定寬度)的像素寬度?WPF - 以像素爲單位的畫布高度

我在AnimatedImage控件中有一個位圖,並且我知道位圖的像素寬度,我想縮放位圖以便它完全水平地適合畫布。我如何確定這個比例?

注意:我不需要使用RenderTargetBitmap,因爲位圖已經加載。

回答

13

在WPF單元是獨立於設備的。計算單位實際像素大小的公式爲:

每個WPF單位的像素數= ConstantWPFUnit大小* monitor DPI;在每單位WPF像素=像素的元件的

大小* MyElement.ActualWidth

恆定WPF單元大小爲1/96。如果我沒有記錯,可以從SystemInformation.GetPrimaryMonitor或類似的東西返回的類中找到顯示器DPI。

FrameworkElement的ActualWidth是獨立於設備的單位,是元素在佈局發生後實際佔用的寬度。只需將此屬性乘以上面計算的每個WPF單元的像素數就可以得到答案。

但是我有一個懷疑,你做了很多手動編碼。通常可以通過在控制/畫筆上設置屬性來實現以任何需要的方式拉伸圖像和其他視覺元素。你是否嘗試過爲包含位圖的元素製作Horizo​​ntalAlignment =「Stretch」和VerticalAlignment =「Center」?

+0

你說得對,我正在解決這個問題,垂直+水平對齊做到了!非常感謝你! – melculetz 2009-03-04 17:08:10

相關問題