到目前为止,我在对话框中对齐按钮所做的是创建TableLayoutPanel
并为每列添加一个按钮,然后手动设置按钮适合的列大小。中间的一个空列在哪里,宽度可以灵活。
这当然不是正确的解决方案。我如何在设计师中正确地做到这一点?
答案 0 :(得分:3)
使用Dock
。
左侧按钮需要Dock.Left
,右侧按钮需要Dock.Right
。
请注意,向左或向右对接意味着从上到下填充容器,因此您还必须有一个容器来控制按钮的高度。
从DockStyle
Enum页面的备注部分:
如果选择了Left,Right,Top或Bottom,则控件的指定边和相对边的大小将调整为包含控件的相应边的大小。如果选择“填充”,则控件的所有四个边都会调整大小以匹配包含控件的边。
通常,您使用两个面板执行此类操作,一个使用Dock.Bottom
,其中高度设置为按钮的高度,另一个使用Dock.Fill
,这将具有Dock
内容。
然后,在停靠在底部的容器中,停靠按钮。
请注意,使用 uid = this.afAuth.auth.currentUser.uid;
answersRef: AngularFireList<any>;
allMyAnswers: Observable<any[]>;
constructor(private afAuth: AngularFireAuth,
private db: AngularFireDatabase, public authService: AuthService, private router: Router) {
var path = 'users/' + this.uid + '/answers';
this.answersRef = db.list(path);
this.allMyAnswers = this.answersRef.snapshotChanges().map(changes => {
return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
});
}
时,放置容器中元素的顺序非常重要 - 第一个按钮将停靠在外边缘,第二个按钮将停靠在其后面。< / p>
从同一页的备注部分:
当控件停靠在其容器的边缘时,在调整容器大小时,它始终与该边缘齐平。如果多个控件停靠在边缘上,则控件根据其z顺序并排显示; z顺序中较高的控件位于距离容器边缘较远的位置。