【发布时间】:2013-07-17 16:11:40
【问题描述】:
所以,我正在用 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"];
它会添加一个如下所示的新行:
如您所见,这不太对... 并且拉伸窗口会加剧问题:
似乎不尊重样式的“Stretch”属性。
但是,如果我改为将样式加载代码更改为
col0.Style = (Style)FindResource("stretchImage");
col1.Style = (Style)FindResource("stretchImage");
col2.Style = (Style)FindResource("stretchImage");
效果很好:
(同样,应用程序还没有完成,所以不用担心),但我的主要问题是:Application.Current.Resources[] 和 FindResource() 之间有什么区别?为什么一个似乎忽略了某些属性而另一个却没有?如果可能的话,我怎样才能让Application.Current.Resources[] 正常工作?
【问题讨论】:
-
发布相关的 XAML。我在这里看到的只是一种风格。
-
老兄,你所有的 XAML 都是错误的。让我修复它并回复你。