【发布时间】:2013-03-01 08:26:06
【问题描述】:
我想在一个函数(比如一个事件)中创建一个 WinRT 对象(比如一个文本块),然后在 C++/CX 中将它添加到一个页面(比如一个在运行时设置其行号和列号的网格)。有可能吗?
【问题讨论】:
-
我不明白为什么这个问题会导致声誉下降
标签: c++-cx
我想在一个函数(比如一个事件)中创建一个 WinRT 对象(比如一个文本块),然后在 C++/CX 中将它添加到一个页面(比如一个在运行时设置其行号和列号的网格)。有可能吗?
【问题讨论】:
标签: c++-cx
只需像调用任何其他对象一样在类上调用“ref new”,然后将其添加到网格的“Children”集合中。
为了设置网格的行列,需要在网格上调用SetRow/SetColumn来设置附加属性。
这很容易通过在 xaml 文件中命名网格(使用 x:Name 属性)来完成,这样您就可以在代码中按名称引用它。 Xaml:
<Grid x:Name="myGrid">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
</Grid>
代码隐藏:
auto textBlock = ref new TextBlock();
textBlock->Text = "this is my text";
myGrid->Children->Append(textBlock);
myGrid->SetRow(textBlock, 1);
myGrid->SetColumn(textBlock, 0);
【讨论】:
textBlock->VerticalAlignment = Windows::UI::Xaml::VerticalAlignment::Center;