에서 동적 폼 생성을위한 스태킹 위젯 지금은 XML 파일을 기반으로 위젯을 동적으로 생성하는 .NET Mono GTK # 응용 프로그램을 개발 중입니다. 그래서 위젯을 여러개 쌓아 올릴 필요가 있습니다. 나는 VBox를 사용해 보았지만 (수평으로 늘리려면 위젯이 필요함) 위젯이 수직으로 늘어나는 것을 원하지 않는다.GTK #
void BuildObjectProperties(Container parent, List<ObjectProperty> objectProperties)
{
var verticalBox = new VBox(false, 0);
foreach (var objectProperty in objectProperties)
{
BuildObjectProperty(verticalBox, objectProperty);
}
parent.Add(verticalBox);
}
void BuildObjectProperty(Container parent, ObjectProperty objectProperty)
{
switch (objectProperty.Type)
{
case PropertyType.Text:
parent.Add(new Entry());
break;
case PropertyType.Number:
parent.Add(new SpinButton(0,10,1));
break;
case PropertyType.Note:
parent.Add(new TextView());
break;
case PropertyType.List:
parent.Add(new TreeView());
break;
case PropertyType.Enum:
parent.Add(new ComboBox());
break;
case PropertyType.Reference:
parent.Add(new ComboBox());
break;
}
}
이 코드 위젯이 생성 및 추가 그러나 그들 모두가 프레임에 동일한 분포를 얻을으로
(그들은 멀리 떨어져)와 내가 그들 사이의 거리 (예 : 10px)를 고정하고 싶었다는 내가 원 스크린 상에 존재하는 위젯들의 수에도 불구하고 고정 된 높이.
어쩌면 Vbox가 실제로 사용해야하는 것은 아니지만이 방법을 수행하는 방법을 모르겠습니다. 그래서 나는 어떤 도움을 요청하고있다.
추신 : 또 다른 것 (얼마나 많은 위젯이 있을지 모르겠다 ... 너무 많으면 스크롤바를 사용하여 패널을 스크롤하고 싶다. , 이것에 약간 도움은 또한 평가 될 것입니다.) 대단히 감사합니다.
그냥 VBox 대신 Fixed를 사용하고 X/Y 및 추가하려는 하위 위젯의 WidthRequest 및 HeightRequest를 사용하여 간단하게 레이아웃을 사용할 수 있습니다 – muszeo