[英]How to Put ProgressBar in Button
我是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
的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>
這將導致如下所示的按鈕控件:
如果需要多個,則應聲明一個Style
然后將其應用於表單中的按鈕,如其他建議的那樣。
如果您只需要一個實例,則可以執行以下操作:
<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++;
}
使用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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.