Codigo para un sencillo control Progressbar que muestra en el centro el porcentaje realizado
El codigo que se muestra en este documento es un control ProgressBar que muestra centrado en el control la cantidad de porcentaje que muestra la barra de progreso, algo aprecido a esto.
<UserControl x:Class="UC_ProgressBarConPorcentaje" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" MinHeight="20" mc:Ignorable="d" d:DesignHeight="30" d:DesignWidth="300"> <Grid x:Name="GridProgressBarConPorcentaje" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" > <ProgressBar x:Name="ProgressBarBarra" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="#FFABF7E9" Value="{Binding ZProgressBarValor, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" /> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="NoWrap" FontFamily="Consolas" Text="{Binding Value, ElementName=ProgressBarBarra, StringFormat=\{0:00.00\} %}" /> </Grid> </UserControl>
''' <summary> ''' Control de una barra de progreso que muestra en el centro el porcentaje realizado ''' </summary> Public Class UC_ProgressBarConPorcentaje ' el valor de la barra de progreso ' la información se mueve al control por binding Public Shared ReadOnly ZProgressBarValorProperty As DependencyProperty = DependencyProperty.Register("ZProgressBarValor", GetType(System.String), GetType(UC_ProgressBarConPorcentaje), New FrameworkPropertyMetadata("0", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)) ''' <summary> ''' Valor para la barra de progreso, propiedad value ''' </summary> Public Property ZProgressBarValor As String Get Return CType(GetValue(ZProgressBarValorProperty), String) End Get Set(value As String) SetValue(ZProgressBarValorProperty, value) End Set End Property ''' <summary> ''' Actualiza el valor de la barra de progreso con un valor Double ''' </summary> ''' <param name=value"></param>" Public Sub ZSetValorToInteger(ByVal value As Double) Dim numDouble As Double = Math.Round(numDouble, 2) Call ZSetValorToString(String.Format(System.Globalization.CultureInfo.CurrentCulture, "{0}", numDouble)) End Sub ''' <summary> ''' Actualiza el valor de la barra de progreso con un valor String ''' </summary> Public Sub ZSetValorToString(ByVal value As String) ZProgressBarValor = value '------------------------------------------- ' Actualizar el Binding ¡ahora mismo! Dim be As BindingExpression = GetBindingExpression(ZProgressBarValorProperty) If (Not (be) Is Nothing) Then be.UpdateSource() End If End Sub End Class
© 1997 - - La Güeb de Joaquín | |||||
Joaquín Medina Serrano
|
|||||
|
Codificación | |
Fecha de creación | |
Última actualización | |
![]() |