Pregunta

Estoy tratando de visualización de datos 2 en un botón, el uso personalizado de estilo.

Así, escribí un código XAML, como el de abajo, con una 'ContentPresenter.'

<Style x:Key="Num_of_Comments" TargetType="Button">
        <Setter Property="Foreground" Value="{ThemeResource AppBarItemForegroundThemeBrush}"/>
        <Setter Property="VerticalAlignment" Value="Top"/>
        <Setter Property="HorizontalAlignment" Value="Left"/>
        <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}"/>
        <Setter Property="FontWeight" Value="Normal"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Grid Background="Transparent" x:Name="RootGrid">
                        <Grid 
                            Height="42" 
                            Width="42">
                            <Ellipse
                                x:Name="Ellipse"
                                Fill="{ThemeResource AppBarItemBackgroundThemeBrush}"
                                Stroke="{TemplateBinding Foreground}"
                                StrokeThickness="2"
                                UseLayoutRounding="False" />
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="21"/>
                                    <RowDefinition Height="21"/>
                                </Grid.RowDefinitions>
                                <ContentPresenter 
                                    Grid.Row="0"
                                    Foreground="{TemplateBinding Foreground}" 
                                    HorizontalAlignment="Center" 
                                    VerticalAlignment="Center">
                                </ContentPresenter>
                            </Grid>
                        </Grid>
                        <Rectangle x:Name="FocusVisualWhite" IsHitTestVisible="False" Opacity="0" StrokeDashOffset="1.5" StrokeEndLineCap="Square" Stroke="{ThemeResource FocusVisualWhiteStrokeThemeBrush}" StrokeDashArray="1,1"/>
                        <Rectangle x:Name="FocusVisualBlack" IsHitTestVisible="False" Opacity="0" StrokeDashOffset="0.5" StrokeEndLineCap="Square" Stroke="{ThemeResource FocusVisualBlackStrokeThemeBrush}" StrokeDashArray="1,1"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Y yo uso este estilo como este.

<Button Grid.Column="1" Content="{Binding Comments}" Style="{StaticResource Num_of_Comments}" IsEnabled="False" Margin="10,0,0,0" VerticalAlignment="Center" Foreground="{Binding Comments_color}"/>

Entonces, este botón se ve como esta

Botón Original

De todos modos, me gustaría añadir uno más 'ContentPresenter' en el estilo, y mostrar una o más de datos diferentes en el botón.

Pero si puedo agregar algo más 'ContentPresenter' en el estilo, no sé cómo asignar 2 datos diferentes en cada 'ContentPresenter.'

Este es el botón de lo que quiero hacer.

El botón quiero hacer

Gracias de antemano

¿Fue útil?

Solución

Puede utilizar Tag propiedad en el botón para asignar los datos adicionales y obligar a la segunda ContentPresenter Content de la siguiente manera:

   <ContentPresenter 
       Grid.Row="1"
       Content="{TemplateBinding Tag}"
       HorizontalAlignment="Center" 
       VerticalAlignment="Center">
   </ContentPresenter>

y en Button:

 <Button Tag="{Binding OTHERDATAPROPERTY}" Content="{Binding Comments}"></Button>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top