Avalonia 常用控件一

1、Border

            Background:背景颜色
            BorderBrush:边框线颜色
            BorderThickness:边框线宽度
            CornerRadius:边框圆角
            Padding:内边距
            Margin:外边距
            BoxShadow:
                第一个参数:offset-x,x轴方向移动阴影。
                第二个参数:offset-y,y轴方向移动阴影。
                第三个参数:blur-radius,该值越大,模糊效果就越大,因此阴影会变得更大、更轻。不允许使用负值。如果未指定,则使用默认值(零),并且阴影边是尖锐的。
                第四个参数:spread-radius,正值会导致阴影扩大和变大,负值会导致阴影缩小。如果未指定,它将为0(阴影将与元素大小相同)。
                第五个参数:color,使用颜色名称(如红色)、#前缀和十六进制颜色值的阴影的颜色。例如:#dadada

	<StackPanel>
		<Border Background="Gainsboro"
				BorderBrush="Black"
				BorderThickness="2"
				CornerRadius="3"
				Padding="10"
				Margin="10"
				BoxShadow="5 10 20 0 #dadada">
			<TextBlock>Box 1</TextBlock>
			<!--
			Background:背景颜色
			BorderBrush:边框线颜色
			BorderThickness:边框线宽度
			CornerRadius:边框圆角
			Padding:内边距
			Margin:外边距
			BoxShadow:
				第一个参数:offset-x,x轴方向移动阴影。
				第二个参数:offset-y,y轴方向移动阴影。
				第三个参数:blur-radius,该值越大,模糊效果就越大,因此阴影会变得更大、更轻。不允许使用负值。如果未指定,则使用默认值(零),并且阴影边是尖锐的。
				第四个参数:spread-radius,正值会导致阴影扩大和变大,负值会导致阴影缩小。如果未指定,它将为0(阴影将与元素大小相同)。
				第五个参数:color,使用颜色名称(如红色)、#前缀和十六进制颜色值的阴影的颜色。例如:#dadada
			-->
		</Border>
		<Border Background="Gainsboro"
				BorderBrush="Black"
				BorderThickness="2"
				CornerRadius="3"
				Padding="10" Margin="10">
			<TextBlock>Box 2</TextBlock>
		</Border>
		
	</StackPanel>

2、DataGrid

NuGet中添加Avalonia.Controls.DataGrid如下图

App.axaml 文件中添加

<StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml"/>

代码如下图:

    <Application.Styles>
        <FluentTheme />
		<StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml"/>
    </Application.Styles>

创建文件夹Models,添加类Person.cs,代码如下

    public  class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int AgeInYears { get; set; }

        public Person(string firstName,string lastName,int ageInYears)
        {
            FirstName= firstName;
            LastName= lastName; 
            AgeInYears= ageInYears;
        }
    }

 修改ViewModels文件夹中的MainViewModel.cs类代码如下

public class MainViewModel : ViewModelBase
{
    public ObservableCollection<Person> People { get; }

    public MainViewModel()
    {
        var people = new List<Person>
            {
                new Person("Neil", "Armstrong",  55),
                new Person("Buzz", "Lightyear", 38),
                new Person("James", "Kirk", 44)
            };
        People = new ObservableCollection<Person>(people);
    }
}

修改Views文件夹下MainView.axaml代码如下

	 <DataGrid Margin="20"					  
		  ItemsSource="{Binding People}"
		  GridLinesVisibility="All"
		  BorderThickness="1"
					  BorderBrush="Black">
				<DataGrid.Columns>
					<DataGridTextColumn Header="First Name" Width="2*"
					   Binding="{Binding FirstName}" />
					<DataGridTextColumn Header="Last Name" Width="2*"
					   Binding="{Binding LastName}" />

					<DataGridTemplateColumn Header="Age">
						<DataGridTemplateColumn.CellTemplate>
							<DataTemplate DataType="model:Person">
								<TextBlock Text="{Binding AgeInYears, StringFormat='{}{0} years'}"
								  VerticalAlignment="Center" HorizontalAlignment="Center" />
							</DataTemplate>
						</DataGridTemplateColumn.CellTemplate>
						<DataGridTemplateColumn.CellEditingTemplate>
							<DataTemplate DataType="model:Person">
								<NumericUpDown Value="{Binding AgeInYears}"
								   FormatString="N0" Minimum="0" Maximum="120"
								   HorizontalAlignment="Stretch"/>
							</DataTemplate>
						</DataGridTemplateColumn.CellEditingTemplate>
					</DataGridTemplateColumn>
				</DataGrid.Columns>
			</DataGrid>

运行效果如下

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为风而战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值