我真的需要帮助。我在后面的代码中动态创建一个网格控件,然后将其添加到在 xaml 中定义的包含控件的子级中。现在,一切都按预期动态创建,但不幸的是,当我以相同的方式设置样式时,我设置了我添加到网格中的文本框的文本,并相应地在行/列中定位它不起作用。请注意以下代码:
AddTextBlock(7, col, String.Format("{0:0}%", finances.PrivateDaysPercent), "GridValueStyle");
TextBlock AddTextBlock( int row, int column, string text, string style)
{
Style s = Resources[style] as Style;
TextBlock tb = new TextBlock() { Text = text};
tb.Style = s;
Grid.SetColumn(tb, column);
Grid.SetRow(tb, row);
grid.Children.Add(tb);
return tb;
}
<Style x:Key="GridValueStyle" TargetType="TextBlock" BasedOn="{StaticResource ContentTextStyle}" >
<Setter Property="Margin" Value="2,1" />
<Setter Property="HorizontalAlignment" Value="Right"/>
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
样式显然应该设置,但事实并非如此。样式在资源字典中正确定义并添加到 app.xaml。我知道它可以工作,因为我在另一个导航页面中使用了这种样式,并且它完美地适用于 xaml 中静态创建的网格。