2010-09-05 26 views
0

我創建了一個具有固定寬度和高度(256x256)的畫布。在它旁邊,我放置了一個顯示256x256紋理而不伸展的圖像控件。屏幕上兩種控件的實際尺寸差異如何?WPF控件大小大於明確設置的寬度和高度值

Here - 是顯示尺寸不匹配的截圖。

here - TestLines256.png萬一有人喜歡檢查它(也許指出我很笨,這個紋理是180x180,而不是我聲稱的那樣是256x256)。

XAML與創建控件:

<Window x:Class="OversizedQuad.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" SizeToContent="WidthAndHeight"> 
<StackPanel Orientation="Horizontal"> 
    <Canvas Width="256" Height="256" Background="Red" /> 
    <Image Stretch="None" Source="TestLines256.png" /> 
</StackPanel> 

+1

http://stackoverflow.com/questions/1189384/wpf-pixels-to-desktop-pixels – 2010-09-05 10:23:21

回答

4

WPF具有與設備無關的像素。 因此,像素的大小根據DPI設置而不同。我想這是因爲圖像大小和Canvas大小不同。

檢查:

http://www.dotnetfunda.com/articles/article882-wpf-tutorial--a-beginning--1-.aspx

+0

謝謝!但是,我可以在我的應用程序(特別是這個畫布)中強制某個控件保持通過寬度和高度屬性提供的基於像素的尺寸嗎?第一個想法是創建一個CustomControl,跟蹤寬度和高度變化,並最終根據DPI值重新計算新的大小。 – pbalaga 2010-09-05 20:43:34

+0

不知道。我認爲你需要模仿GDI控制像素大小算法並相應調整畫布大小。 – abhishek 2010-09-07 10:58:19

相關問題