我在 StackLayout 中有一个按钮,添加了调用
ButtonBar bar = layout.Children.AddButtonBar("My Button Text", "MyButtonCommand", "+", "MySecondaryButtonCommand");
它下面有一个 SecondaryButton,与
bar.SecondaryButton.SetBinding(Button.TextProperty, "ToggleButtonTextProperty");
辅助按钮的文本在单击时会有所不同(它用于的唯一“操作”是选择枚举值)。主按钮是操作按钮,所以我希望它更宽以表明它具有优先级 / 是重要的操作按钮。
问题是辅助按钮上显示的某些文本比其他文本更长,并且对于最长的文本,它们会被切断,从按钮的两侧跑出。如果我设置两个按钮,或者只设置 SecondaryButton 以使用 HorizontalOptions.FillAndExpand,那么按钮最终宽度相等,这不是我想要的。我可以通过设置 bar.SecondaryButton.WidthRequest = 110 得到我想要的,但我很紧张我没有测试所有设备,并且 FontSize 不是硬编码的,而是设置为 DeviceSize.GetNamedSize(NamedSize.Small, typeof(标签)),因此它在设备之间的大小可能会有所不同,使其在某些情况下适用于 110 宽度设置,但在其他情况下则不适用。
有什么方法可以请求宽度以匹配最长的文本(例如以某种方式传递该文本),而不是对宽度进行硬编码?或者有没有一种简单的方法来告诉我需要什么最小宽度才能让文本恰好适合具有最大文本大小的设备?