所以,我正在用 C# 中的 WPF 制作一个 GUI。它看起来像这样:
现在还没有完成。这 2 行是我尝试制作一种数据表,它们在 XAML 中进行了硬编码。
现在,我正在 C# 中实现添加新水果按钮的功能。我在 XAML 中有以下样式来控制行的背景图像应该是什么样子:
<Style x:Key="stretchImage" TargetType="{x:Type Image}">
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="Stretch" Value="Fill"/>
</Style>
因此,在代码中,我为每一列、 、 和 创建了一个图像col0
,col1
如果col2
我使用以下代码,
col0.Style = (Style)Application.Current.Resources["stretchImage"];
col1.Style = (Style)Application.Current.Resources["stretchImage"];
col2.Style = (Style)Application.Current.Resources["stretchImage"];
它添加了一个如下所示的新行:
如您所见,它不太正确......并且拉伸窗口会加剧问题:
它似乎不尊重样式的“拉伸”属性。
但是,如果我改为将样式加载代码更改为
col0.Style = (Style)FindResource("stretchImage");
col1.Style = (Style)FindResource("stretchImage");
col2.Style = (Style)FindResource("stretchImage");
它工作得很好:
(同样,应用程序还没有完成,所以不用担心),但我的主要问题是:Application.Current.Resources[]
和之间有什么区别FindResource()
?为什么一个似乎忽略了某些属性,而另一个却没有?如果可能的话,我如何Application.Current.Resources[]
才能正常工作?