Pergunta

Eu tenho uma tela estática. Eu adicionei um tempo de execução de forma. Então eu tento adicionar um ContentControl que irá manter a forma. Mas como a forma já é adicionado à tela, ele dá um erro de criança lógico. Alguém pode me ajudar como conseguir este feito mantendo a lógica de adicionar o ContentControl depois dinamicamente?

XAML: Dentro tag janela manter uma tela em branco com name = "CNV"

C #:

        Ellipse ee = new Ellipse();
        ee.Width = 100;
        ee.Height= 50;
        ee.Fill= Brushes.Red;
        ee.Name = "el";
        hidden.Children.Add(ee);

        ContentControl cc = new ContentControl();
        cc.BorderBrush = Brushes.Black;
        cc.Content = ee;

        cnv.Children.Add(ee);
Foi útil?

Solução

A UIElement pode ter apenas um pai, então você precisa para removê-lo do Canvas antes de re-estar em outro lugar:

hidden.Children.Remove(ee);
cc.Content = ee;
cnv.Children.Add(ee);

PS. Há quase certamente uma maneira mais agradável, mais limpo para fazer o que é que você está tentando fazer, em vez de brincar na árvore visual como você é.

Outras dicas

Como pontos Kent fora um elemento pode ter apenas um pai, então simplesmente remover a linha:

    hidden.Children.Add(ee);

do seu código como você também estão chamando:

    cnv.Children.Add(ee);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top