【发布时间】:2013-04-15 20:16:40
【问题描述】:
我有一个带有网格的 UserControl,其规格如下:
<Grid Name="fieldsGrid" Margin="15,0,0,10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
</Grid>
第二列是感兴趣的列。它显示一个复选框,其文本包含在 TextBlock 中,如果它太长,则显示为 "Text..."。这是通过代码隐藏完成的(我有我的理由),如下所示:
CheckBox currentCheckbox = new CheckBox();
TextBlock block = new TextBlock();
block.MaxWidth = 100;
block.Text = text;
block.TextWrapping = TextWrapping.NoWrap;
block.TextTrimming = TextTrimming.WordEllipsis;
currentCheckbox.Content = block;
currentCheckbox.ToolTip = metaText;
currentCheckbox.SetValue(Grid.RowProperty, rowNumber);
currentCheckbox.SetValue(Grid.ColumnProperty, 1);
currentCheckbox.Margin = new Thickness(0, 10, 10, 0);
currentCheckbox.VerticalAlignment = VerticalAlignment.Center;
fieldsGrid.Children.Add(currentCheckbox);
问题是我想在调整 UserControl 大小时扩展此复选框,从而随着大小的增加显示更多文本。如何实现?
【问题讨论】:
-
This is accomplished through code-behind (I have my reasons)- 我严重怀疑你有正当的理由造成如此可怕的混乱。在 WPF 中,XAML 用于创建 UI。期间。 -
好吧,既然你问了@HighCore - 他们不是这样的原因,而是我正在处理别人的代码,我不能改变太多。所以不幸的是,我不得不使用我所拥有的:/
-
我听到了...我发现以正确的方式完全重构一个糟糕实施的 WPF UI 最终会更容易,即试图从这些 winforms 开发人员的黑客中获得一些不错的东西。
-
我同意你的观点,但是修改它可能会给我带来麻烦,呵呵,所以更容易在沉默中受苦@HighCore :)
标签: c# .net wpf xaml wpf-controls