如何自动调整大图像的大小,使其适合较小宽度的div容器,同时保持其宽度:高度比?
示例:stackoverflow.com - 当图像插入编辑器面板并且图像太大而无法放入页面时,图像会自动调整大小.
我只想在左边流动文本,在右边有一个帮助框.
帮助框应该一直延伸到底部.
如果您取出下面的外部StackPanel,它的效果很好.
但由于布局的原因(我正在动态插入UserControl),我需要包装StackPanel.
如何让GroupBox扩展到StackPanel的底部,你可以看到我已经尝试过:
XAML:
<Window x:Class="TestDynamic033.Test3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Test3" Height="300" Width="600">
<StackPanel
VerticalAlignment="Stretch"
Height="Auto">
<DockPanel
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Height="Auto"
Margin="10">
<GroupBox
DockPanel.Dock="Right"
Header="Help"
Width="100"
Background="Beige"
VerticalAlignment="Stretch"
VerticalContentAlignment="Stretch"
Height="Auto">
<TextBlock Text="This is the help that is available on the news screen." TextWrapping="Wrap" />
</GroupBox>
<StackPanel DockPanel.Dock="Left" Margin="10" Width="Auto" HorizontalAlignment="Stretch">
<TextBlock Text="Here is the news that should wrap around." TextWrapping="Wrap"/>
</StackPanel>
</DockPanel>
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
谢谢Mark,使用DockPanel而不是StackPanel清理它.一般来说,我发现自己现在越来越多地使用DockPanel进行WPF布局,这里是固定的XAML:
<Window x:Class="TestDynamic033.Test3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Test3" Height="300" Width="600" MinWidth="500" …
Run Code Online (Sandbox Code Playgroud) View有一个minHeight
但不知何故缺少一个maxHeight
:
我想要实现的是让一些项目(视图)填满ScrollView
.当有1..3项时,我想直接显示它们.意味着它ScrollView
具有1,2或3个项目的高度.
当有4个或更多项目我希望ScrollView
停止扩展(因此a maxHeight
)并开始提供滚动.
但是,遗憾的是没有办法设置maxHeight
.因此,我可能必须以ScrollView
编程方式WRAP_CONTENT
将高度设置为有1..3项3*sizeOf(View)
时的高度,并将高度设置为有4个或更多项时的高度.
任何人都可以解释为什么没有maxHeight
提供,什么时候已经有minHeight
?
(顺便说一下:有些观点,比如ImageView
已经maxHeight
实施了.)
是否有一个仅限CSS的解决方案将图像缩放到边界框(保持纵横比)?如果图像大于容器,则此方法有效:
img {
max-width: 100%;
max-height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
例:
但我想扩大图像,直到尺寸为容器的100%.
这个调整大小的超级视图的悬念我不能满足上帝的爱.
我有一个UIView *superview
4 UILabels
.2用作另外2个的标题.
所有4个内容都来自数据库.
SizeToFit
vs SizeThatFits:(CGSize)
vs UIView systemLayoutSizeFittingSize:
,传球UILayoutFittingCompressedSize
或者UILayoutFittingExpandedSize
.
我以编程方式使用autolayout并将superview高度设置为等于或大于虚拟数字.
我在哪里以及如何使用这些SizeToFit
vs sizeThatFits:(CGSize)
vs UIView systemLayoutSizeFittingSize:
,传递UILayoutFittingCompressedSize
或者UILayoutFittingExpandedSize
.我已经在堆栈上阅读了很多提示但最终没有任何结果.
我是否需要在某处特定的情况下重新计算superview的约束.Maby在其控制器类中将高度设置为'@ property`并删除并读取它?Atm我试图将所有东西都放在一起然后放一些.我仍然得到相同大小的最终结果,虚拟高度和文字漂浮在外面.甚至在子视图上设置clipsToBound之后.
我正在抓我的头发..帮助
我希望有一个小的QFormLayout
增长来填充其父窗口小部件.
我使用Qt Designer中的模板创建了一个新的.ui文件QWidget
.我在QFormLayout
里面放了一个'窗口',然后把一些控件放在里面QFormLayout
.
这一切都运行得相当好,但QFormLayout
总是保持我在Qt Designer中设置的大小.我希望QFormLayout
填充其父窗口小部件并使用它进行扩展/缩小.
我怎么能做到这一点?
我正在尝试使用Tkinter创建一个按钮网格(以实现可点击的单元格效果).
我的主要问题是我无法使grid
按钮自动调整并适合父窗口.
例如,当我在网格上有大量按钮时,而不是缩小按钮以使网格适合窗口内部,我得到一个离开屏幕的拉伸框架.
我正在寻找的效果是网格填充所有可用空间,然后调整其单元格以适应该空间.我已阅读文档,但我仍然无法弄清楚如何使其工作.
这是基本代码,这是我的出发点:
def __init__(self):
root = Tk()
frame = Frame(root)
frame.grid()
#some widgets get added in the first 6 rows of the frame's grid
#initialize grid
grid = Frame(frame)
grid.grid(sticky=N+S+E+W, column=0, row=7, columnspan=2)
#example values
for x in range(60):
for y in range(30):
btn = Button(grid)
btn.grid(column=x, row=y)
root.mainloop()
Run Code Online (Sandbox Code Playgroud) 我UITextView
想要填充它superView
,这是UIView
一个UIViewController
实例内的平原.
看来,我不能让UITextView
这样做完全由使用的API指定的性质autoresizingMask
和autoresizesSubviews
.如此处所示设置这些没有任何作用; 在UITextView
依然很小,即使它superView
充满屏幕.
// use existing instantiated view inside view controller;
// ensure autosizing enabled
self.view.autoresizesSubviews = YES;
self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight|
UIViewAutoresizingFlexibleWidth;
// create textview
textView = [[[UITextView alloc] autorelease] initWithFrame:CGRectMake(0, 0, 1, 1)];
// enable textview autoresizing
[textView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|
UIViewAutoresizingFlexibleHeight];
// add textview to view
[self.view addSubview:textView];
Run Code Online (Sandbox Code Playgroud)
但是,如果我在视图控制器中实例化我自己的视图,替换它的'.view'属性,那么一切都按预期工作,并且textView填充其超级视图:
// reinstantiate view inside view controller
self.view = [[UIView alloc]init];
// create textview …
Run Code Online (Sandbox Code Playgroud) 我需要在tkinter中获取一个画布,将其宽度设置为窗口的宽度,然后在用户使窗口变小/变大时动态地重新调整画布大小.
有没有办法(轻松)这样做?
=== 编辑 ========
现在,Xcode 8.1解决了这个问题.我检查过.
================
我不知道自动布局是否正确.所以,我在我的所有应用程序中使用自动调整选项,这对我来说很好.我能够毫无问题地满足我的所有要求.
现在在Xcode 8中,我已经将我的旧swift项目迁移到swift 3.现在出现了问题.
看到图片,我已经设置了Autoresizing,并且它在所有设备中都没有问题,直到现在这个项目都在AppStore中,所以我无法显示UI或故事板.
现在我必须在项目中做一些更新.所以我现在正在使用Xcode 8.但我的autoresizing不能正常工作,因为所有的控件都在中心,UI搞砸了.
这个问题在设备中也存在.我也检查了模拟器和设备.但问题也存在.任何建议和帮助将不胜感激.提前致谢.
编辑:
昨天在运行时只有问题,但今天的故事板也改变了这个图像的视图
这意味着整个UI设计搞砸了.这很奇怪.
autoresize ×10
ios ×3
autolayout ×2
css ×2
html ×2
image ×2
python ×2
tkinter ×2
uiview ×2
android ×1
button ×1
canvas ×1
dockpanel ×1
grid ×1
layout ×1
objective-c ×1
python-3.x ×1
qt-designer ×1
qt4 ×1
resize ×1
storyboard ×1
swift3 ×1
view ×1
wpf ×1
xaml ×1
xcode ×1
xcode8 ×1