gpt4 book ai didi

c# - 如何使用资源两次?

转载 作者:行者123 更新时间:2023-11-30 14:39:25 26 4
gpt4 key购买 nike

在我的应用程序资源中,我有:

    <Application.Resources>

<Border x:Key="border1" BorderBrush="{x:Null}" BorderThickness="0" Height="159" Width="5" >
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFC0C0C" Offset="0" />
<GradientStop Color="#63FF0000" Offset="0.999" />
<GradientStop Color="#6AFE0000" Offset="0.048" />
</LinearGradientBrush>
</Border.Background>
</Border>

</Application.Resources>

我想将该边框添加到堆栈面板中,例如:

            Border temp = new Border();
temp = (Border)FindResource("border1");
temp.Name = "bar" + i;
stackPanel1.Children.Add(temp);

这很好用。唯一的问题是我想添加该边框的两个实例。因此我把它放在一个循环中:

            for (int i = 0; i < 10; i++)
{
Border temp = new Border();
temp = (Border)FindResource("border1");
temp.Name = "bar" + i;
stackPanel1.Children.Add(temp);
}

在第二次迭代时我得到错误:

enter image description here

但对我来说似乎没有解析异常,因为请注意第一次迭代没有问题:

enter image description here

如何多次使用同一个资源?我知道我可以动态创建该资源,但我需要实际使用该资源。

最佳答案

如果添加x:Shared="false"根据您的资源定义,它应该可以工作:

<Border x:Key="border1" x:Shared="false" BorderBrush="{x:Null}" BorderThickness="0" Height="159"  Width="5" >
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFC0C0C" Offset="0" />
<GradientStop Color="#63FF0000" Offset="0.999" />
<GradientStop Color="#6AFE0000" Offset="0.048" />
</LinearGradientBrush>
</Border.Background>
</Border>

关于c# - 如何使用资源两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6471941/

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