2010-06-23 60 views
2

例如,我创建了一个带有复选标记的按钮。我需要在窗户的两个地方使用它。可以重新使用WPF控件吗?

<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> 

由于我只想更改内容,我不确定样式或模板是否适用。我是否需要创建一个UserControl?

编辑:这可以用一种风格来完成。但是,我只想更改内容,我不想重写当前的样式。

+0

你最好可以使用样式在这里,让你不必去改变所有的按钮时,有一个变化。 – Amsakanna 2010-06-23 13:18:20

回答

1

这是一种风格的呼喊。以下样式添加到您的Window.Resources:

<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}" /> 
+0

此特定样式符合要求,但会丢弃使用样式为按钮提供的任何内容。这是一个很好的解决方案,但是您可以随时修改模板以便随后包含ContentPresenter。例如,你可以用Polyline和ContentPresenter创建一个水平的StackPanel,现在你可以选择将文本(或任何其他内容)附加到任何'tick'样式按钮上。 – 2010-06-23 13:39:53

+0

这是一个非常好的观点 - 我确实努力去制定它。添加内容演示者将是一个不错的功能。 – 2010-06-23 13:49:47

+0

谢谢。但是我的整个应用程序已经应用了它的样式。当我运用这种风格时,我会放弃这一切。有没有解决的办法? – TheSean 2010-06-23 14:13:30

2

如果您想对其创建某种动态功能,即添加新属性,请使用您创建的按钮的内容创建UserControl。如果你只有一个只有视觉外观的按钮来进行检查,那么我会使用一种风格。

0

创建创建按钮的内容的用户控件。创建用户控件的最简单方法是使用Expression Blend。选择我们想要进行UserControl的所有控件。右键点击并选择“进入用户控制”。而已。 U可以通过拖放操作在项目中的任何位置使用此控件。

希望这将有助于U,

Saghar Ayyaz

相关问题