Я получил эту функцию:Добавление динамического управления с анимацией
void Title(string t)
{
if (called == true)
{
GrdLogo.Children.Remove((TextBlock)GrdLogo.FindName("Tb"));
}
TextBlock Tb = new TextBlock();
Tb.Text = t;
Tb.Name = "Tb";
Tb.Height = 160;
Tb.FontSize = 70;
Tb.Margin = new Thickness(Img.Width * 2 + 30, 30, 0, 0);
GrdLogo.Children.Add(Tb);
}
И после вызова этой функции я получаю ошибку:
WinRT information: The name already exists in the tree: Tb.
Xaml код thisGrid (GrdLogo):
<Grid x:Name="GrdLogo" HorizontalAlignment="Left" Height="160" VerticalAlignment="Top" Width="1366" Background="#FF1D1D1D">
<Grid.ChildrenTransitions>
<TransitionCollection>
<AddDeleteThemeTransition />
</TransitionCollection>
</Grid.ChildrenTransitions>
</Grid>
Кроме того, без транзистора это работает, но я не знаю, как это может иметь значение, поэтому я прошу помощи. Я все еще довольно свежий в создании динамических элементов управления. В любом случае для меня код выглядит хорошо, но, возможно, я должен использовать какой-то метод async для удаления этого TextBlock?
Должны ли мы предположить, что вы на самом деле устанавливаете «called = true» по мере необходимости? – McGarnagle
Да, нет сомнений. Я тестировал его много раз и без перехода в Grid работает хорошо. Дело в том, как запустить это с помощью перехода без использования глобальных типов int. Я думаю, что это не обязательно. – MajQel
Вы уверены, что 'GrdLogo.FindName (" Tb ")' возвращает ненулевое значение? – ghord