Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin 如何更改<;堆栈布局>&书信电报;网格>;要使用的屏幕<;相对长度>;?_Xamarin_Xamarin.forms - Fatal编程技术网

Xamarin 如何更改<;堆栈布局>&书信电报;网格>;要使用的屏幕<;相对长度>;?

Xamarin 如何更改<;堆栈布局>&书信电报;网格>;要使用的屏幕<;相对长度>;?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我有这个代码,目前是和的组合 我想转移到一个相对的布局,并没有看到这么多的例子。如果您能就如何实现这一目标提出任何建议,我们将不胜感激 关于XAML的一些要点 屏幕上显示emptyGrid或phraseGrid 屏幕上会显示buttonGrid或tapGrid 按钮的垂直中心和点击标签应位于同一位置。这样,当按钮未显示时,轻触标签将显示在与按钮相同的垂直按钮上 框架显示在选项卡式页面中 我意识到这不仅仅是一个简单的问题,但我相信其他人也会感兴趣。因为答案可能很复杂,我会在几天内为此开出250

我有这个代码,目前是和的组合

我想转移到一个相对的布局,并没有看到这么多的例子。如果您能就如何实现这一目标提出任何建议,我们将不胜感激

关于XAML的一些要点

  • 屏幕上显示emptyGrid或phraseGrid
  • 屏幕上会显示buttonGrid或tapGrid
  • 按钮的垂直中心和点击标签应位于同一位置。这样,当按钮未显示时,轻触标签将显示在与按钮相同的垂直按钮上
  • 框架显示在选项卡式页面中
我意识到这不仅仅是一个简单的问题,但我相信其他人也会感兴趣。因为答案可能很复杂,我会在几天内为此开出250分的悬赏


代码 可在GitHub中找到此功能的源代码:

public类相对论页面:ContentPage
{
公共关系页面()
{
var emptyLabel=新标签
{
Text=“空标签”,
余量=新厚度(10,0,10,0),
FontSize=18,
text颜色=颜色。灰色,
HorizontalTextAlignment=TextAlignment.Center
};
var resetPointsButton=新建按钮
{
BackgroundColor=Color.FromHex(“E19A3F”),
Text=“重置点?”,
TextColor=Color.White,
FontAttributes=FontAttributes.Bold,
};
交换机(设备运行时平台)
{
case设备。Android:
resetPointsButton.FontSize=20;
打破
case Device.iOS:
resetPointsButton.FontSize=25;
打破
}
var msg1Label=新标签
{
Text=“msg1”,
边距=新厚度(0,26,0,0)
};
var msg2Label=新标签
{
Text=“msg2”,
边距=新厚度(0,26,0,0)
};
var msg3Label=新标签
{
Text=“msg3”,
边距=新厚度(0,26,0,0)
};
var faveLabel=新标签{Text=“Fave Label”};
var wordTypeLabel=新标签{Text=“Word Type Label”};
var textLabel=新标签
{
Text=“文本标签”,
FontSize=45,
HorizontalTextAlignment=TextAlignment.Center,
VerticalTextAlignment=TextAlignment.Center
};
var detail1Label=新标签
{
Text=“详细信息1标签”,
余量=新厚度(10,0)
};
var detail2Label=新标签
{
Text=“详细信息2标签”,
余量=新厚度(10,0)
};
var detail3Label=新标签
{
Text=“详细信息3标签”,
余量=新厚度(10,0)
};
var zeroButton=新按钮
{
Text=“0”,
余量=新厚度(0,0,0,20)
};
var oneButton=新按钮
{
Text=“1”,
余量=新厚度(0,0,0,20)
};
var twoButton=新按钮
{
Text=“2”,
余量=新厚度(0,0,0,20)
};
var fiveButton=新按钮
{
Text=“5”,
余量=新厚度(0,0,0,20)
};
var tapScreenLabel=新标签
{
Text=“点击屏幕”,
余量=新厚度(0,0,0,20),
VerticalTextAlignment=TextAlignment.Center,
垂直选项=布局选项。中心
};
Func GetZeroButtonHeight=parent=>zeroButton.Measure(parent.Width,parent.Height).Request.Height;
Func GetOneButtonHeight=parent=>oneButton.Measure(parent.Width,parent.Height).Request.Height;
Func GetTwoButtonHeight=parent=>twoButton.Measure(parent.Width,parent.Height).Request.Height;
Func GetFiveButtonHeight=parent=>fiveButton.Measure(parent.Width,parent.Height).Request.Height;
var relativeLayout=新的relativeLayout();
relativeLayout.Children.Add(emptyLabel,
约束常数(0),
约束常数(0),
Constraint.RelativeToParent(parent=>parent.Width));
relativeLayout.Children.Add(重置点按钮,
约束常数(0),
约束常数(0),
Constraint.RelativeToParent(parent=>parent.Width));
relativeLayout.Children.Add(msg1Label,
约束常数(25),
Constraint.RelativeToView(resetPointsButton,(父,视图)=>view.Y