问题标签 [sizetocontent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - WPF 如何使 RichTextBox 的宽度跟随父控件的宽度?
在这里,我有以下简单的窗口:
上面是一个DataGrid,下面是一个TextBox。窗口的大小设置为内容的宽度。这是所需的布局。
现在我需要显示一些富文本,所以我将 TextBox 替换为 RichTextBox。问题是现在窗口延伸到屏幕的宽度,就像这样(当然,我把它缩小了,但你明白了):
我尝试将 RichTextBox 的宽度绑定到父级的实际宽度:
但它仍然会扩展到整个窗口。顺便说一句,如果我在上面的代码中使用 TextBox,也会发生同样的情况。
如何使 RichTextBox 的宽度适合父级,同时仍保持动态窗口布局?我的意思是 DataGrid 是窗口宽度和 RichTextBox 宽度都必须服从的关键元素。
下面是完整的代码。
XAML
C#
解决方案
1. mm8 的解决方案几乎可以工作,但似乎 Loaded 事件发生在早期以正确计算 ActualWidth - RichTextBox 不填充宽度并留下间隙。但更进一步,我使用窗口的“Content_Rendered”事件来修复窗口的宽度,然后将 RichTextBox 的宽度设置为自动。
2. Spongebrot 出现在现场。实际上,当移除额外边框时,绑定到父级的 ActualWidth 有效。但在现实生活中,我的控制更加复杂,边界的存在是有原因的。但这可以通过级联绑定来解决:
如果您绑定到祖父母或更远的祖先,则绑定到 ActualWidth 似乎无法按预期工作。这似乎就是为什么 Sinatr 的建议也不起作用的原因。
wpf - WPF 窗口大小到...大部分内容?
我知道 WPF 窗口具有“SizeToContent”属性,并且效果很好,在这种情况下几乎是我想要的。但是我所拥有的略有不同。我有一个窗口,上面有一些一般内容,我希望它自动调整到该内容的高度。设置 SizeToContet="Height"... 到目前为止一切顺利。
但是,我也有一个图形元素,它位于主要内容的后面,设计为位于左下角。这个窗口可能很短,所以在某些情况下图形比主要内容高;在这种情况下,我希望它将图形剪辑到主要内容的高度。然而,使用 SizeToContent 它将图形视为内容的一部分(可以理解)并且不会让窗口比这更短。
在计算 SizeToContent 高度时,有没有办法告诉要忽略的特定项目?
c# - 当 FlowDirection/UICulture 是从右到左时,窗口 SizeToContent "WidthAndHeight" 仍然是向左调整大小
在为从右到左语言(= RTL,在我的情况下是希伯来语)本地化我的 WPF-c# 应用程序时 -
我遇到了一个问题,我在 MSDN 或谷歌的任何地方都找不到任何参考,因此没有答案. 不用说我是编程新手...
我的代码有点长,所以我会尝试用文字解释主要问题。
在我的应用程序中,我有一个包含StackPanel
. 在里面,我嵌套了一个TabControl
带有 3 个选项卡项的选项卡,每个选项卡项都包含一个UserControl
我指向的不同项。他们每个人都有不同的大小。
在同一个窗口上,我设置了 Window 属性SizeToContent="WidthAndHeight"
。该应用程序在默认的从左到右设置下运行良好,当我将FlowDirection
c# 中的(也在 XAML 中尝试过)更改为从右到左时,它也可以正常工作,除了这个:
启动应用程序并在选项卡之间移动时,窗口正在调整大小,但它一直将窗口大小调整到左上角位置。即左上角保持固定,而其余窗口大小根据内容而定(这在LeftToRight
UI 中工作时很棒,但在 RTL UI 上很烦人且难以使用,因为选项卡标题不断移动)。
有没有办法改变窗口的大小方向,以便在 RTL UI 上窗口的大小朝向右上角?难道我做错了什么?
wpf - 根据里面的Controls设置usercontrol大小
嗨,我想根据里面的控件设置用户控件大小,我该怎么做?很久以前我使用了propretis SizeToContent ,但我现在找不到它
wpf - 如何使用 Expander 控件自动调整窗口的大小以适应内容?
我试图弄清楚如何在控件展开或折叠Window
后调整我的应用程序的大小。Expander
它必须增长或缩小。我之前在 StackOverflow 上看到的所有案例都建议设置SizeToContent="WidthAndHeight"
. 这是一个正确的工作流程还是我应该手动更改大小?
该应用程序由以下组成,MainWindow
其中包含Expander
基于 - 的用户控件StackPanel
:
这是我的UserControl
:
在我的UserControl
代码隐藏中,我有两个空事件处理程序:
我的MainWindow
班级如下所示:
这就是我所拥有的:
设置SizeToContent="WidthAndHeight"
对我不起作用。Expander 会扩展,但窗口大小不会改变。
更新:问题现在解决了。问题在于固定高度。因此,如果您想SizeToContent
完成所有脏活,则永远不要在. 当您指定 UserControl 的固定高度时,您必须在您的 UserControl 类的和处理程序中自行处理大小更改。我的应用程序布局现在很好:Height
ExpandDirection="Down"
Expanded()
Collapsed()