【发布时间】:2022-06-13 01:48:15
【问题描述】:
我正在尝试从 WPF 转换此代码,但不支持 DrawingBrush。在 Avalonia 中是否有等效的编写方式?
<Grid.OpacityMask>
<DrawingBrush>
<DrawingBrush.Drawing>
<GeometryDrawing Brush="Black" Geometry="{StaticResource Triangle}" />
</DrawingBrush.Drawing>
</DrawingBrush>
</Grid.OpacityMask>
这是我能得到的最接近的。它编译并运行,但似乎没有做我想做的事
<Grid.OpacityMask>
<VisualBrush>
<VisualBrush.Visual>
<ContentControl>
<GeometryDrawing Brush="Black" Geometry="{StaticResource VolumeTriangle}" />
</ContentControl>
</VisualBrush.Visual>
</VisualBrush>
</Grid.OpacityMask>
编辑:这是我需要应用样式的 Slider 模板
<Style Selector="local|MediaPlayer Slider.volume">
MediaPlayerVolumeBackgroundBrush}" /> -->
<Setter Property="Focusable" Value="False" />
<Setter Property="Template">
<ControlTemplate>
<Grid>
<Grid>
<Track Name="PART_Track" Value="{TemplateBinding Value}" Orientation="Horizontal">
<Track.Thumb>
<Thumb Width="5" Height="15" Background="{TemplateBinding Background}">
<Thumb.Template>
<ControlTemplate>
<Border Background="Black" />
</ControlTemplate>
</Thumb.Template>
</Thumb>
</Track.Thumb>
<Track.DecreaseButton>
<RepeatButton.Template>
<ControlTemplate>
<Path Data="{TemplateBinding ., Converter={StaticResource TimeSpanToDoubleConverter}, ConverterParameter={TemplateBinding Value}, Mode=OneWay}" Stretch="Fill"
Stroke="{DynamicResource MediaPlayerVolumeBorderBrush}" StrokeThickness="1" />
</ControlTemplate>
</RepeatButton.Template>
</Track.DecreaseButton>
<Track.IncreaseButton>
<RepeatButton Name="PART_IncreaseButton"
Height="{TemplateBinding Height}" Width="{TemplateBinding Width}" Padding="0"
Background="LightGray" />
</Track.IncreaseButton>
</Track>
</Grid>
</Grid>
</ControlTemplate>
</Setter>
</Style>
【问题讨论】:
标签: c# .net .net-core avaloniaui