Когда я использую Scale=
на кнопках, чтобы уменьшить их, интервал увеличивается.
Например:
Это показывает, что кнопки в одной строке расположены так, как я хочу.
<ScrollView Orientation = "Both">
<VerticalStackLayout Padding = "7,7" Spacing = "2">
<HorizontalStackLayout Margin = "0" Spacing = "2">
<Button Text = "Show Scans" HorizontalOptions = "Start" Scale = "1.0" />
<Button Text = "Sync Scans" HorizontalOptions = "Start" Scale = "1.0" />
<Button Text = "Export Scans" HorizontalOptions = "Start" Scale = "1.0" />
</HorizontalStackLayout>
</VerticalStackLayout>
</ScrollView>
Когда я устанавливаю кнопку Scale
меньше, она работает, но расстояние увеличивается.
<ScrollView Orientation = "Both">
<VerticalStackLayout Padding = "7,7" Spacing = "2">
<HorizontalStackLayout Margin = "0" Spacing = "2">
<Button Text = "Show Scans" HorizontalOptions = "Start" Scale = "0.5" />
<Button Text = "Sync Scans" HorizontalOptions = "Start" Scale = "0.5" />
<Button Text = "Export Scans" HorizontalOptions = "Start" Scale = "0.5" />
</HorizontalStackLayout>
</VerticalStackLayout>
</ScrollView>
Как мне получить этот интервал при масштабе < 1,0?
Примечание. Справа от всех этих макетов кнопок больше места, поэтому это не связано с заполнением строки более крупными кнопками.
Я прочитал все о кнопках и искал, но не смог найти ответа, касающегося интервала с масштабом < 1,0.
Да, спасибо, исправил формулировку в вопросе...
Однако тег масштаба означает нечто совершенно иное.
Почему бы не указать размер шрифта, чтобы добиться желаемого поведения? Масштаб не кажется подходящим свойством для этого случая.
FontSize делает то, что я бы сказал, и меняет размер текста, но размер кнопки остается прежним. Множество примеров того, как сделать кнопку с изображением, но ничего не могу найти об изменении размера кнопок....
Я согласен с комментарием Джейсона о том, что использование шрифта меньшего размера — хорошее начало. Button
, вероятно, имеет стиль по умолчанию, установленный в Styles.xaml, включая минимальные значения для высоты и ширины, и это объясняет, почему размер кнопки не уменьшается так, как вы ожидаете, и именно поэтому я указал MinimumHeightRequest = "0"
. Вы упомянули, что не можете найти информацию о кнопках изменения размера, поэтому я также хочу упомянуть свойства HeightRequest
и WidthRequest
как еще один способ контролировать размеры кнопок.
Также есть возможность поместить коэффициент масштабирования в HorizontalStackLayout
, что решает проблему с пробелами, но является неоптимальным, поскольку не компенсирует выравнивание по левому краю.
<ScrollView>
<VerticalStackLayout
Padding = "0,0"
Spacing = "25">
<Image
Source = "dotnet_bot.png"
HeightRequest = "185"
Aspect = "AspectFit"
SemanticProperties.Description = "dot net bot in a race car number eight" />
<VerticalStackLayout Padding = "7,7" Spacing = "2" >
<HorizontalStackLayout Margin = "0" Spacing = "2">
<Button Text = "Show Scans" HorizontalOptions = "Start" Scale = "1.0" />
<Button Text = "Sync Scans" HorizontalOptions = "Start" Scale = "1.0" />
<Button Text = "Export Scans" HorizontalOptions = "Start" Scale = "1.0" />
</HorizontalStackLayout>
</VerticalStackLayout>
<VerticalStackLayout Padding = "7,7" Spacing = "2">
<HorizontalStackLayout Spacing = "2" Scale = "0.5" HorizontalOptions = "Start">
<Button Text = "Show Scans" HorizontalOptions = "Start" />
<Button Text = "Sync Scans" HorizontalOptions = "Start" />
<Button Text = "Export Scans" HorizontalOptions = "Start" />
</HorizontalStackLayout>
</VerticalStackLayout>
<VerticalStackLayout Padding = "7,7" Spacing = "2">
<HorizontalStackLayout Margin = "0" Spacing = "2" HorizontalOptions = "Start">
<Button Text = "Show Scans" HorizontalOptions = "Start" FontSize = "7" Padding = "7,5" MinimumHeightRequest = "0" CornerRadius = "4"/>
<Button Text = "Sync Scans" HorizontalOptions = "Start" FontSize = "7" Padding = "7,5" MinimumHeightRequest = "0" CornerRadius = "4"/>
<Button Text = "Export Scans" HorizontalOptions = "Start" FontSize = "7" Padding = "7,5" MinimumHeightRequest = "0" CornerRadius = "4"/>
</HorizontalStackLayout>
</VerticalStackLayout>
</VerticalStackLayout>
</ScrollView>
Это дает мне кнопки меньшего размера, которые я искал. <Button Text = "Show Scans" FontSize = "12" Padding = "8,6" MinimumHeightRequest = "0" CornerRadius = "6"/>
Обратите внимание, что HorizontalOptions = "Start" требуется не для каждой кнопки, а только для HorizontalStackLayout. Кроме того, вставка объекта кнопки в непосредственное окно во время отладки дает много интересной информации. Спасибо всем.
Вы неоднократно используете термин
Size
, но это не является собственностьюButton
. Вы действительно имеете в видуScale
?