gpt4 book ai didi

c# - WPF:只能使用 StaticResource 一次

转载 作者:太空狗 更新时间:2023-10-29 22:13:28 25 4
gpt4 key购买 nike

我在我的 WPF Windows XAML 中定义了一个静态资源:

<Window.Resources>
<Image x:Key="MyImage" Source="../Icons/img.png" Width="16" Height="16" Stretch="None" />
</Window.Resources>

我想使用它两次:

<Grid>
<Button Content="{StaticResource MyImage}" RenderOptions.BitmapScalingMode="NearestNeighbor" RenderOptions.EdgeMode="Aliased" />
</Grid>

...

<Grid>
<Button Content="{StaticResource MyImage}" RenderOptions.BitmapScalingMode="NearestNeighbor" RenderOptions.EdgeMode="Aliased" />
</Grid>

但它只显示一次按钮图像。在最后一个按钮上。第一个按钮没有图像。

当我删除第二个按钮时,它适用于第一个按钮。如何多次使用 StaticResource? Visual Studio GUI 设计器在两个按钮上显示图像。

最佳答案

默认情况下,XAML 资源是共享的,这意味着只有一个实例会像在 XAML 中引用一样频繁地重复使用。

但是,图像控件(与任何其他 UI 元素一样)只能有一个父控件,因此不能共享。

您可以将 x:Shared 属性设置为 false:

<Image x:Key="MyImage" x:Shared="false" Source="../Icons/img.png" Width="16" Height="16"/>

您通常不会将 UI 元素用作资源。另一种方法是像这样的 BitmapImage 资源:

<Window.Resources>
<BitmapImage x:Key="MyImage" UriSource="../Icons/img.png"/>
</Window.Resources>

<Button>
<Image Source="{StaticResource MyImage}" Width="16" Height="16"/>
</Button>

关于c# - WPF:只能使用 StaticResource 一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45154572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com