我的窗口中有Image控件。此Image控件的大小设置为"Auto“。
<Image x:Name="videoImg" Stretch="Fill" Height="Auto" Width="Auto" />当我尝试访问时,它返回0。如何查看此控件的实际大小?它随window调整大小。
发布于 2017-11-28 18:05:44
虽然一些WPF控件在布局和呈现时会填满所有可用空间,但其他控件不会。具体地说,Image控件不是那种自行确定其大小的控件,也就是说,当您没有使用width/height属性或类似属性显式指定控件的大小时。
但是当缺少定义大小的属性时,Grid控件会填满所有可用的空间。Visual Studio中的Page/Window模板有一个Grid控件作为Page/Window根控件的子控件,当用户开始在图形编辑器中的页面上放置控件时,用户添加的控件首先成为此Grid控件的子控件。
如果您使用了VS模板,并且image控件是上述Grid控件的子控件,请使用x:Name属性命名Grid,并且您可以在代码隐藏中使用Grid的ActualWidth/Height属性来满足您的需要,因为Image控件会增长到其父Grid大小--前提是您没有显式或以其他方式指定它的大小,即设置Image内容。
顺便说一句,可以更改内置控件的大小调整行为。您可以修改控件并重写相应的依赖属性。例如,请参见https://stackoverflow.com/a/6094993。
https://stackoverflow.com/questions/7903306
复制相似问题