- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个包含三个不同控件的网格,两个是组框,第三个是 TreeView 。我不知道初始宽度,所以 Window.SizeToContent 设置为“宽度”一切都完美地适合窗口,当我从 TreeView 扩展一个节点时,问题来了,Window.Width 调整到 treeView 完美适合的新宽度,但其余控件不是那么好。
我想保留 SizeToContent 给出的“原始”宽度,并在扩展 treeViewNode 而不是更改整个 Window.Width 时获得一个 ScrollBar
这是 xaml(只有主网格和 TreeView )
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!--Attachments-->
<GroupBox x:Name="gbAttachments" Header="Attachments" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" HorizontalContentAlignment="Stretch">
<TreeView x:Name="tvAttachments" BorderThickness="0" ScrollViewer.HorizontalScrollBarVisibility="Visible" />
</GroupBox>
<!--Attachments-->
</Grid>
我尝试使用 ColumnDefinition.Width = "*"、HorizontalContentAlignment 和许多其他不同的方法,我还尝试将它放在 ScrollbarViewer 中,但似乎没有任何效果。总是当我扩展节点时,整个窗口都会用节点的内容扩展(实际上它很长)。我很确定问题出在 Window.SizeToContent = 'Width' 但如果我不知道原始宽度,我还能为其余控件做些什么?任何想法,提前致谢!
--编辑
好吧,解决方案比预期的要容易,在 Window_Loaded 事件中,我得到 gbAttachments.ActualWidth 并将其分配给 TreeView.MaxWidth不漂亮,很确定它可以通过 xaml 完成,但它正在工作。
最佳答案
您可以尝试设置树中节点的 MaxWidth
属性:
<Style TargetType="TreeViewItem">
<Setter Property="MaxWidth" Value="80"></Setter>
</Style>
或者,您可以将此值绑定(bind)到某些东西,例如另一个元素:
<Style TargetType="TreeViewItem">
<Setter Property="MaxWidth"
Value="{Binding ElementName=gbAttachments, Path=ActualWidth}"></Setter>
</Style>
此外,如果您担心窗口在初始化后不需要自动调整大小,您可以尝试在代码后面做一些事情,以便自动调整仅在窗口初始化时发生:
public MainWindow()
{
InitializeComponent();
// auto-size width, and save off value
this.SizeToContent = System.Windows.SizeToContent.Width;
var actualWidth = this.ActualWidth;
// manual-size width
this.SizeToContent = System.Windows.SizeToContent.Manual;
// set value to what it was, when auto-sized
this.Width = actualWidth;
}
关于c# - SizeToContent.Width 和 TreeView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39169670/
我举了一个简单的例子。有一个工具窗口。它以网格为内容,具有三个区域。第一个区域是带有一些文本的文本框,第二个是标签,第三个是另一个文本框。 Grid的行高分别为:“*”、“30”、“*”。对于窗口,我
每当我尝试创建一个窗口并将 SizeToContent 设置为 WidthAndHeight 时,打开窗口时会根据其内容正确调整大小,但它会在右边和底部。在调整大小时,这个问题消失了,当使用设置的高度
我有一个 WPF 窗口,由于 SizeToContent="WidthAndHeight",它会随着时间的推移改变其大小。最初 WindowStartupLocation="CenterScreen"
当使用下面的 XAML 时,窗口大小不是 5000x5000,而是按钮被裁剪的一些小窗口。 XXX 据我所知,大小我没有指定 SizeToContent 属性,默认是“手动”,所以它将使用
事实上,UserControl 缺少我们在 Window 中拥有的属性“SizeToContent”。 所以问题是: 在 UserControl 上模拟 SizeToContent=WidthAndH
是否可以以某种方式限制 Window.SizeToContent仅扩大尺寸? 我有一个通用窗口,动态填充 TabControl 中的内容。由于一开始并不知道每个 TabItem 将有多大,所以我无法预
我有一个包含三个不同控件的网格,两个是组框,第三个是 TreeView 。我不知道初始宽度,所以 Window.SizeToContent 设置为“宽度”一切都完美地适合窗口,当我从 TreeView
我的 WPF 应用程序中有时会显示一个窗口。当它显示时,它会淡入动画,而当它关闭时,它会淡出。没什么特别的,只是一个修改不透明度的 Storyboard。实际上窗口从来没有真正关闭过,不透明度只是淡出
我想弄清楚如何将 WPF 列表框与 SizeToContent 属性设置为 WidthAndHeight 的窗口结合使用。 MainWindow 有一个包含两行和两列的网格。在右下象限,我有一个列表框
我创建了这个简单的演示,因为我在 WPF 中无法自动调整大小。这是简单的代码:
我基本上希望我的窗口的某些部分不影响 SizeToContent(如标题栏之类的东西),以便它看起来没有大小和折叠。是否有我可以用来执行此操作的面板(比如 ScrollViewer?),还是我必须自己
当我将窗口的默认属性设置为: SizeToContent="WidthAndHeight" 和 WindowState="Minimized", 窗口右侧会有一个黑色部分。 要重现它,请尝试创建一个新
我有 WPF 滚动条设置为 Auto 的特殊问题和 Window设置为 SizeToContent="Height"将自身调整到 Windows 7 工具栏下。 XAML 真的很简单。
我是一名优秀的程序员,十分优秀!