我是 WPF 的新手,并没有尝试将进度条放在按钮中。我之前提出的问题是:StackOverflow Post。任何有关如何正确执行此操作的帮助将不胜感激。我没有在 StackOverflow 上看到另一个帖子来解决这个问题。理想情况下,最好让按钮 (1) 具有垂直居中的文本(即通常显示在按钮中)和 (2) 具有文本下方的进度条。该按钮将是默认高度的 2 倍,以便为进度条留出空间。我可以调整你想出的任何东西的位置和间距。我对正确完成绑定以更新进度条非常感兴趣。
谢谢!巴克
我是 WPF 的新手,并没有尝试将进度条放在按钮中。我之前提出的问题是:StackOverflow Post。任何有关如何正确执行此操作的帮助将不胜感激。我没有在 StackOverflow 上看到另一个帖子来解决这个问题。理想情况下,最好让按钮 (1) 具有垂直居中的文本(即通常显示在按钮中)和 (2) 具有文本下方的进度条。该按钮将是默认高度的 2 倍,以便为进度条留出空间。我可以调整你想出的任何东西的位置和间距。我对正确完成绑定以更新进度条非常感兴趣。
谢谢!巴克
您有两个选择,UserControl
为您的按钮创建一个或一个新样式并覆盖ControlTemplate
. 我建议您进行样式Button
设置,因为它更容易并且您最终不会创建新类型。下面是你将如何做到这一点。
<Button>
<Button.Style>
<Style BasedOn="{StaticResource {x:Type Button}}" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<!-- Put in your textbox and progress bar and what not -->
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
您可以在此处阅读有关模板控件的更多信息,并可以在此处找到默认值Style
和ControlTemplate
for 。Button
您可以轻松地将任何控件放入Content
按钮的属性中:
<Button>
<Button.Content>
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" Margin="5">
<TextBlock Text="I'm a button with progress bar!"></TextBlock>
<ProgressBar Height="20"></ProgressBar>
</StackPanel>
</Button.Content>
</Button>
这将产生一个像这样的按钮控件:
如果您需要多个,您应该声明 aStyle
并将其应用于表单中的按钮,正如其他人所建议的那样。
使用 Mah 应用程序
<Button Canvas.Left="170"
Canvas.Top="71"
Width="55"
Command="{Binding SearchEmployeeCommand}">
<Canvas Width="50" Height="20">
<TextBlock Text="select ..." />
<controls:ProgressRing Canvas.Left="15"
Width="20"
Height="20"
IsActive="True"
Visibility="Visible" />
</Canvas>
</Button>
如果您只需要一个这样的实例,您可以执行以下操作:
<Button Click="Button_Click_1">
<StackPanel>
<TextBlock Text="Hello World"/>
<ProgressBar Height="10" x:Name="pb1" Maximum="15"></ProgressBar>
</StackPanel>
</Button>
然后在您的 C# 代码中,您可以访问进度条,例如:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
pb1.Value++;
}