官网

1、图片

  • 图片显示

Source设置为固定的图片全路径时,可以直接设置;

但是用Binding绑定图片时,需要是Bitmap类型,即 Avalonia.Media.Imaging.Bitmap(Stream stream); 

<Image Grid.Column="0" Grid.Row="2" Width="11" Source="/Assets/icon/fav.png"  HorizontalAlignment="Center" VerticalAlignment="Center"></Image>

<Image Cursor="Hand" Name="Signature" Tapped="Tapped_Detail" Source="{Binding MailDetailModel.SignImage, Converter={StaticResource ImgConverter}}"></Image>
  • 图片单击

1、使用Tapped=“Tapped_Detail”  Tapped_Detail定义在页面后端的cs代码中

2、使用Image.GestureRecognizers,其中没有TapGestureRecognizer【不可用】

3、使用<Button>包裹,命令可写在viewmodel中

注意设置Button的属性

<Button  Command="{Binding ShowDecryptCert}" BorderThickness="0" Background="White">
              <Image Source="{Binding MailDetailModel.ResolveResult, Converter={StaticResource MailResolveResultDecryptConverter}}"></Image>
            </Button>

2、文本TextBlock 

  • 文本截断与显示不全用ToolTip
 <TextBlock  Text="{Binding Subject}"  Width="180" TextTrimming="CharacterEllipsis" TextWrapping="NoWrap" ToolTip.Tip="{Binding Subject}"></TextBlock>

参考:WPF 文字换行TextWrapping 显示不全用省略号TextTrimming 显示不全弹提示内容ToolTip

注意宽度的设置:

如果控件位于grid中,则设置列宽,如下:

<Grid VerticalAlignment="Center" Background="Transparent">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"></ColumnDefinition>
                            <ColumnDefinition Width="180"></ColumnDefinition>
                            <ColumnDefinition Width="Auto"></ColumnDefinition>
                        </Grid.ColumnDefinitions>

    <TextBlock x:Name="content" Margin="10" Text="{Binding FolderName}" FontSize="14" Grid.Column="1" TextTrimming="CharacterEllipsis" TextWrapping="NoWrap" ToolTip.Tip="{Binding FolderName}"/>

ToolTip.Placement="Right"  右下角

Left:左下角

AnchorAndGravity:底部中间

想置于上方,必须同时设置这两个:ToolTip.Placement="Top" ToolTip.VerticalOffset="-5"  【因为原点在左上角,往下为正】

  • 文本绑定多个值,单击事件获取

通过ToolTip去传递另一个对象(不需要其显示,通过ShowDelay 来控制其不显示【鼠标放在上面的显示需要等待的毫秒数】)

<TextBlock Cursor="Hand" Name="Receiver" Tapped="ShowSenderInfo" Classes="B" Foreground="{StaticResource GrayBrush3}"  Text="{Binding NickName}" ToolTip.Tip="{Binding Address}"  ToolTip.ShowDelay="3000"></TextBlock>

后台获取ToolTip绑定的对象

public async void ShowSenderInfo(object Sender, Avalonia.Interactivity.RoutedEventArgs e)
        {
            try
            {
                var sender = Sender as TextBlock;
                if (sender == null)
                    return;
                string mailaddress = ToolTip.GetTip(sender).ToString(); //联系人的邮箱地址
            }
            catch (Exception)
            {
            }
        }

3、ListBox

右键事件

PointerPressed 事件,xml中 PointerPressed="ListBox_MouseTap"

 private void ListBox_MouseTap(object sender, Avalonia.Input.PointerPressedEventArgs e)
        {
            try
            {
                if (e.MouseButton == Avalonia.Input.MouseButton.Right)
                {
                    MyListBox control = null;
                    if (sender is MyListBox)
                        control = sender as MyListBox;
                    if (control != null && control.SelectedItem != null)
                    {
                        MailListModel model = control.SelectedItem as MailListModel;
                        if (model != null)
                        {
                            model.IsRightSelected = true;
                            vm.SelectedItem = model;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.AddErrorLog(ex);
            }
        }
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
  • 2022-12-23
  • 2022-01-01
  • 2023-02-07
猜你喜欢
  • 2021-07-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案