我可以获得Height
的{{1}}和Width
,如果Image
已经拉伸了吗?
我尝试了UniformToFill
和Width
属性,但它们始终为Height
。
答案 0 :(得分:4)
如果您想知道图像控件的尺寸,可以这样:
double theHeight = this.ActualHeight - img.Margin.Top - img.Margin.Bottom;
double theWidth = this.ActualWidth - img.Margin.Left - img.Margin.Right;
(img
是上面代码中的图像控件名称,在下面的代码中)
如果您想知道图像的实际尺寸(在拉伸之前),您可以试试这个:
BitmapSource SourceData = (BitmapSource)img.Source;
double imgWidth = SourceData.PixelWidth;
double imgHeight = SourceData.PixelHeight;
(我发现了这个here)
此外,这将在调整大小后(但在统一之前)获得图像的尺寸:
double actWidth = img.ActualWidth;
double actHeight = img.ActualHeight;
因此,其中一个变量(actWidth
或actHeight
)必须等于图像控制尺寸,而另一个变量将高于它。
请注意,如果您在Window_Loaded
事件中调用它们,则第二个和第三个代码无效,因为此时未加载图像。你应该在加载完所有东西后使用它。