小编Mar*_*tin的帖子

对象的ActualHeight和ActualWidth始终为零

我有Canvas一个TextBlock像这样:

<Canvas x:Name="ContentPanel" Grid.Row="1" DoubleTapped="ContentPanel_DoubleTapped">
        <TextBlock x:Name="WordBlock" FontSize="226.667" FontFamily="Segoe UI Semilight" TextAlignment="Center"
                   RenderTransformOrigin="0.5, 0.5">
            <TextBlock.RenderTransform>
                <TranslateTransform x:Name="translate"/>
            </TextBlock.RenderTransform>
        </TextBlock>
    </Canvas>
Run Code Online (Sandbox Code Playgroud)

我的应用程序是这样的,当用户导航到此页面时,TextBlock将以中心为中心Canvas,如果TextBlock宽度大于画布的宽度,则会出现选框动画:

private void SetAnimation()
{
    Canvas.SetLeft(WordBlock, (ContentPanel.ActualWidth - WordBlock.ActualWidth) / 2);
    Canvas.SetTop(WordBlock, (ContentPanel.ActualHeight - WordBlock.ActualHeight) / 2);

    if (WordBlock.ActualWidth > ContentPanel.ActualWidth)
    {
        MarqueeAnimation.From = WordBlock.ActualWidth;
        MarqueeAnimation.To = -WordBlock.ActualWidth;
        MarqueeAnimation.Duration = new Duration(new TimeSpan(0, 0, 10));
        MarqueeBoard.Begin();
    }
}
Run Code Online (Sandbox Code Playgroud)

此方法称为OnNavigatedTo.我无法弄清楚为什么TextBlock不会居中,因为ActualHeightActualWidth属性总是以0.0的形式返回.我不想放置固定大小,因为这是一个Windows应用商店应用程序,并希望它可以在不同的屏幕尺寸上进行扩展.

有任何想法吗?我被卡住了.

c# xaml windows-runtime actualwidth actualheight

3
推荐指数
1
解决办法
3496
查看次数

标签 统计

actualheight ×1

actualwidth ×1

c# ×1

windows-runtime ×1

xaml ×1