C# 其他元素后面的Wpf文本框

C# 其他元素后面的Wpf文本框,c#,wpf,canvas,text,marquee,C#,Wpf,Canvas,Text,Marquee,我创建了一个消息栏,上面有一个动画文本, . 你可以在前景中看到文本“fly's”并隐藏占位符。但我需要在前景的占位符 我的第一个想法是将动画区域从 doubleAnimation.To = tbInfo.ActualWidth *-1; 到 但结果如下所示: 如何在前景中设置占位符,以便动画“飞”在其后面? 我的XAML代码 <Canvas x:Name="canMain" HorizontalAlignment="Stretch" VerticalAlignment="Cente

我创建了一个消息栏,上面有一个动画文本, . 你可以在前景中看到文本“fly's”并隐藏占位符。但我需要在前景的占位符

我的第一个想法是将动画区域从

doubleAnimation.To = tbInfo.ActualWidth *-1;

但结果如下所示:

如何在前景中设置占位符,以便动画“飞”在其后面?


我的XAML代码

<Canvas x:Name="canMain" HorizontalAlignment="Stretch" VerticalAlignment="Center">
    <Border x:Name="boLogo" Height="40" Background="Gray" Canvas.Left="0" Canvas.Top="-20">
        <Button Content="Placeholder" Width="90" />
    </Border>
    <TextBlock x:Name="tbInfo" Visibility="Hidden" FontSize="32" FontWeight="Bold"  Padding="5" HorizontalAlignment="Stretch" VerticalAlignment="Center"></TextBlock>
</Canvas>
尝试Grid.ZIndex:

<Grid x:Name="canMain" >
    <Border x:Name="boLogo" Grid.ZIndex="2">
        <Button Content="Placeholder" />
    </Border>
    <TextBlock x:Name="tbInfo" Grid.ZIndex="1"/>
</Grid>

作为最可见的层。

使用面板。ZIndex:

<Canvas x:Name="canMain" >
<Border x:Name="boLogo" Panel.ZIndex="2">
    <Button Content="Placeholder" Width="90" />
</Border>
<TextBlock x:Name="tbInfo" Panel.ZIndex="1"></TextBlock>
</Canvas>


我试着用一个网格和一块画布围起来。喜欢但它不会改变任何东西。您使用的是
doubleAnimation.To=tbInfo.ActualWidth*-1对吗?还可以尝试更改元素的顺序。首先是文本块,然后是边框。是的。请参阅@O.DO的答案,Panel.ZIndex是一个不错的选择。
<Grid x:Name="canMain" >
    <Border x:Name="boLogo" Grid.ZIndex="2">
        <Button Content="Placeholder" />
    </Border>
    <TextBlock x:Name="tbInfo" Grid.ZIndex="1"/>
</Grid>
<Canvas x:Name="canMain" >
<Border x:Name="boLogo" Panel.ZIndex="2">
    <Button Content="Placeholder" Width="90" />
</Border>
<TextBlock x:Name="tbInfo" Panel.ZIndex="1"></TextBlock>
</Canvas>