Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式使用画布创建按钮_C#_Wpf_Canvas_Path - Fatal编程技术网

C# 以编程方式使用画布创建按钮

C# 以编程方式使用画布创建按钮,c#,wpf,canvas,path,C#,Wpf,Canvas,Path,我有一个按钮样式的画布可见性问题。 我为集合中的每个项目动态创建了一个内部有两个按钮的stackPanel。问题是,只有最后一个项目的按钮与其画布一起显示,以前的按钮不再显示 风格 你能看到我的错误吗?这个设定器 <Setter Property="Content"> <Setter.Value> <Control Template="{StaticResource PathDelete}"> <Contr

我有一个按钮样式的画布可见性问题。 我为集合中的每个项目动态创建了一个内部有两个按钮的stackPanel。问题是,只有最后一个项目的按钮与其画布一起显示,以前的按钮不再显示

风格

你能看到我的错误吗?

这个设定器

<Setter Property="Content">
    <Setter.Value>
        <Control Template="{StaticResource PathDelete}">
            <Control.Resources>
                <Style TargetType="{x:Type Path}" BasedOn="{StaticResource {x:Type Path}}"/>
            </Control.Resources>
        </Control>
    </Setter.Value>
</Setter>
并在setter中使用资源

<Style x:Key="BtnDeleteStackPanelStyle" TargetType="{x:Type Button}" BasedOn="{StaticResource StackPanelLightButton}" x:Shared="False">
    <Setter Property="Content" Value="{StaticResource DelContent}"/>
</Style

另外:您可以使用ItemsControl显示ListAlbum集合,而不是在代码隐藏中构建动态元素。以下是

非常感谢您的快速回答,我按照您的建议进行了ItemsControl,效果非常好。此外,它不适用于“DelContent”,因为“路径”对于任何按钮都不再可见。我认为这是“PathDelete”填充属性的问题,因为如果我修正了他的值,它就起作用了。@Alematt,appbar\u delete中的路径没有任何填充颜色。设置例如Fill=WhiteYes,但Fill=White在“StackPanelLightButton”资源样式中给出!我不想修复“appbar_delete”中的填充,因为我将为填充添加触发器鼠标。命名样式如何:使用键对其进行贴图,并为路径添加样式={DynamicResource pathStyle}。然后正确使用,没有任何问题
<Setter Property="Content">
    <Setter.Value>
        <Control Template="{StaticResource PathDelete}">
            <Control.Resources>
                <Style TargetType="{x:Type Path}" BasedOn="{StaticResource {x:Type Path}}"/>
            </Control.Resources>
        </Control>
    </Setter.Value>
</Setter>
<Control Template="{StaticResource PathDelete}" x:Key="DelContent" x:Shared="False">
    <Control.Resources>
        <Style TargetType="{x:Type Path}" BasedOn="{StaticResource {x:Type Path}}"/>
    </Control.Resources>
</Control>
<Style x:Key="BtnDeleteStackPanelStyle" TargetType="{x:Type Button}" BasedOn="{StaticResource StackPanelLightButton}" x:Shared="False">
    <Setter Property="Content" Value="{StaticResource DelContent}"/>
</Style