簡體   English   中英

如何在按鈕上放置ProgressBar

[英]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>

你可以閱讀更多關於模板化控件在這里 ,可以找到默認的StyleControlTemplateButton 在這里

您可以輕松地在按鈕的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM