编程语言
首页 > 编程语言> > C#-WPF画布不会调整大小

C#-WPF画布不会调整大小

作者:互联网

我正在尝试学习WPF,但陷入僵局.问题是我有一个从UIControl派生的控件,相关部分:

    <Grid>
    <Border x:Name="OuterBorder" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderThickness="2" BorderBrush="Black">
        <Canvas x:Name ="InternalCanvas" Width="Auto" Height="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="Ivory">
        </Canvas>
    </Border>
</Grid>

渲染控件时,这会给我一个小黑点.我认为这是边界.

然后,在InitizializeComponents之后将代码添加到构造函数中:

        Label l = new Label(); 
        l.Content = "HELLO"; 
        l.BorderThickness = new Thickness(2);
        l.BorderBrush = Brushes.Bisque;
        if (this.GetType() == typeof(SO.SOGraphNode)) 
            this.InternalCanvas.Children.Add(l);

该代码的目的是,如果不继承该类,则应显示某种占位符.是的.

问题在于,InternalCanvas及其使用的OuterBorder不会在新创建的漂亮标签周围调整大小.

边框仍然是点边框,在标签后面看不到InternalCanvas的象牙色背景.

我已经在Google上搜索了很多,以为我需要刷新或更新canvas / control元素,但是我现在不太确定了.主要是通过观看许多Dispatcher.Invoke变体,我在不同时间点在代码中非常自由地应用了变体,每次行为都没有变化.

WPF仍然对我有点倾斜,如果有人知道我可以解决这个问题,我确实有一个闪亮的“正确答案”可以解决.

标签:wpf-controls,wpf,c,net
来源: https://codeday.me/bug/20191031/1973758.html