Я работаю с Plugins.Forms.ButtonCircle в сетке, я добавляю кнопки в коде:
for(int index = 0; index < _viewModel.NumButtons; index++)
{
ButtonCircle.FormsPlugin.Abstractions.CircleButton b;
if (_viewModel.SelectedIndex == index)
{
b = new ButtonCircle.FormsPlugin.Abstractions.CircleButton()
{
ClassId = index.ToString(),
BorderColor = Color.Black,
BackgroundColor = Color.FromHex(_viewModel.AvailableColors[index]),
HeightRequest = 20,
WidthRequest = 20,
};
}
else
{
b = new ButtonCircle.FormsPlugin.Abstractions.CircleButton()
{
ClassId = index.ToString(),
BorderColor = Color.Black,
Margin = 0,
BorderThickness = 0,
Image = "rsz_not_visible.png",
BackgroundColor = Color.FromHex(_viewModel.AvailableColors[index]),
HeightRequest = 20,
WidthRequest = 20,
};
}
b.Clicked += OnButtonClicked;
Grid.SetRow(b, 1);
Grid.SetColumn(b, index);
Grid.SetRowSpan(b, 1);
Grid.SetColumnSpan(b, 1);
ContentGrid.Children.Add(b);
}
Сетка xaml выглядит так:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:oxy="clr-namespace:OxyPlot.Xamarin.Forms;assembly=OxyPlot.Xamarin.Forms"
xmlns:circbut="clr-namespace:ButtonCircle.FormsPlugin.Abstractions;assembly=ButtonCircle.FormsPlugin.Abstractions"
x:Class="Llotja.Views.Bar"
x:Name="BarPage">
<ContentPage.Content>
<Grid Padding="5,5,0,0"
x:Name="ContentGrid">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Grid.RowSpan="1"
Grid.ColumnSpan="1"
HorizontalOptions="Center"
VerticalOptions="Center"
Text="Setmana:"
Font="Bold"
TextColor="#000000"/>
<Button
Grid.Row="0"
Grid.Column="1"
Grid.RowSpan="1"
Grid.ColumnSpan="1"
x:Name="Left"
HorizontalOptions="Center"
VerticalOptions="Center"
Image="left_arrow.png"
BackgroundColor="#D60000"
HeightRequest="25"
WidthRequest="15"/>
<Entry
Grid.Row="0"
Grid.Column="2"
Grid.RowSpan="1"
Grid.ColumnSpan="1"
x:Name="Entry"
Text="1"
Keyboard="Numeric"/>
<Button
Grid.Row="0"
Grid.Column="3"
Grid.RowSpan="1"
Grid.ColumnSpan="1"
x:Name="Right"
HorizontalOptions="Center"
VerticalOptions="Center"
Image="right_arrow.png"
BackgroundColor="#D60000"
HeightRequest="25"
WidthRequest="15"/>
<oxy:PlotView
Grid.Row="2"
Grid.RowSpan="2"
Grid.ColumnSpan="5"
x:Name="Plot" />
</Grid>
</ContentPage.Content>
Затем, когда нажимается кнопка, я удаляю фоновое изображение следующим образом:
if (!aux.Model.Series[Int32.Parse(b.ClassId)].IsVisible)
{
b.Image = "rsz_not_visible.png";
}
else
{
b.Image = null;
}
Как вы можете видеть объявление, создание кнопки работает нормально, но когда я нажимаю на кнопку, функция добавляет изображение или удаляет его, но показывает прямоугольник на фоне, какое свойство я должен изменить? Проблема в кнопках или в объявлении Grid?
до нажатия
После нажатия
Без фона