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