本当に助けが必要です。コード ビハインドでグリッド コントロールを動的に作成し、それを 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 で静的に作成されたグリッドに完全に適用されるため、機能することはわかっています。