Clipping.axaml代码

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        Height="352" Width="707.2"
        x:Class="AvaloniaUI.Clipping"
        Title="Clipping">
    <Window.Resources>
        <GeometryGroup x:Key="clipGeometry" FillRule="NonZero">
            <EllipseGeometry RadiusX="75" RadiusY="50" Center="100,150"></EllipseGeometry>
            <EllipseGeometry RadiusX="100" RadiusY="25" Center="200,150"></EllipseGeometry>
            <EllipseGeometry RadiusX="75" RadiusY="130" Center="140,140"></EllipseGeometry>
        </GeometryGroup>
    </Window.Resources>

    <Grid ColumnDefinitions="*,*">
        <Button Width="350" Height="350" Content="A button" Clip="{StaticResource clipGeometry}"
                VerticalContentAlignment="Center" HorizontalContentAlignment="Center">
            <!--
            <Button.Clip>
                <GeometryGroup FillRule="NonZero">
                    <GeometryGroup.Transform>
                        <ScaleTransform ScaleX="1" ScaleY="1"/>
                    </GeometryGroup.Transform>
                    <StaticResource ResourceKey="clipGeometry"/>
                </GeometryGroup>
            </Button.Clip>
            -->
            
        </Button>
        
        <Image Grid.Column="1" Clip="{StaticResource clipGeometry}"
               Stretch="None" Source="avares://AvaloniaUI/Resources/Images/Creek.jpg"></Image>
    </Grid>
</Window>

Clipping.axaml.cs代码

using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;

namespace AvaloniaUI;

public partial class Clipping : Window
{
    public Clipping()
    {
        InitializeComponent();
    }
}

运行效果

image

 

posted on 2025-09-08 07:40  dalgleish  阅读(8)  评论(0)    收藏  举报