.net WPF控件是否可以重复使用?

.net WPF控件是否可以重复使用?,.net,wpf,.net-4.0,.net,Wpf,.net 4.0,例如,我创建了一个带有复选标记的按钮。我需要在窗口的几个地方使用它 <Button Width="25"> <!-- Draw a Green checkmark --> <Polyline Points="2,5,6,10,13,1" Stroke="Green" StrokeThickness="4" StrokeLineJoin="Round" StrokeStartLineCap="Round" StrokeEndLineCap="Round

例如,我创建了一个带有复选标记的按钮。我需要在窗口的几个地方使用它

<Button Width="25">
    <!-- Draw a Green checkmark -->
    <Polyline Points="2,5,6,10,13,1" Stroke="Green" StrokeThickness="4" StrokeLineJoin="Round" StrokeStartLineCap="Round" StrokeEndLineCap="Round" />
</Button>

因为我只想更改内容,所以我不确定样式或模板是否适用。我需要创建用户控件吗


编辑:这可以通过样式来完成。但是,我只想更改内容,不想覆盖当前样式。

如果希望按钮具有某种动态功能(即添加新属性),请使用您创建的按钮的内容创建一个用户控件。如果你有一个按钮,只是有一个视觉外观来检查,那么我会使用一个样式。

这是一个迫切需要的样式。将以下样式添加到窗口中。参考资料:

<style TargetType="Button" x:Key="tick">
    <Setter Property="ContentTemplate">
        <Setter.Value>
            <DataTemplate>
                <Polyline Points="2,5,6,10,13,1" Stroke="Green" StrokeThickness="4" StrokeLineJoin="Round" StrokeStartLineCap="Round" StrokeEndLineCap="Round" />
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

然后,您可以将按钮定义为:

<Button Width="25" Style="{StaticResource tick}" />


使用所创建按钮的内容创建用户控件。创建用户控件的最简单选项是使用Expression Blend。选择您要向其创建UserControl的所有控件。右键单击并选择“生成用户控件”。就这样。您可以通过拖放在项目中的任何位置使用此控件

希望它能帮助你


Saghar Ayyaz

您最好在此处使用一种样式,以便在发生更改时不必去更改所有按钮。这种特定样式符合要求,但它会丢弃使用该样式为按钮提供的任何内容。不过,这是一个很好的解决方案,因为您可以随时修改模板以在以后包含ContentPresenter。例如,您可以创建一个水平堆栈面板,其中多段线后跟ContentPresenter,现在您可以选择将文本(或任何其他内容)附加到任何“勾选”样式按钮上。这是一个非常好的观点-我做过相关工作。添加内容演示者将是一个不错的功能。谢谢。但我的整个应用程序已经应用了样式。当我采用这种风格时,我就失去了一切。有办法解决这个问题吗?@TheSean,您可以使用样式的BasedOn属性来使用另一个样式作为基础。请看:我在设计时不知道主题,所以它需要是动态的。据我所知,这似乎是不可能的。