XAML,辅助按钮未显示

时间:2017-09-05 09:55:22

标签: c# wpf xaml

所以我试图使用xaml在同一个地方使用2个按钮,一个是播放按钮,另一个是暂停按钮,但由于某种原因,不完全确定为什么只是,但仅XAML中的第一个按钮将显示,如果我将此给定按钮设置为隐藏,则永远不会呈现辅助按钮。

任何想法?

这是代码。

<DataGridTemplateColumn Width="100">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <DockPanel Width="50" Height="50" VerticalAlignment="Center" HorizontalAlignment="Center">
                <Button Style="{DynamicResource MetroCircleButtonStyle}" Visibility="Hidden" Name="PlayButton"
                                            Width="50" Height="50" HorizontalAlignment="Center"
                                            VerticalAlignment="Center" Click="OnPlayButtonClicked"
                                            d:DataContext="{d:DesignInstance local:MainWindow}">
                    <Rectangle Width="20"
                                                   Height="20">
                        <!--<Image Width="50" Height="50" Source="Resources/playIcon.png"  Name="Image"></Image>-->
                        <Rectangle.Fill>
                            <VisualBrush Stretch="Fill"
                                                             Visual="{StaticResource appbar_control_play}" />
                        </Rectangle.Fill>
                    </Rectangle>
                    <!--<Image Width="50" Height="50" Source="Resources/playIcon.png"  Name="Image"></Image>-->
                </Button>

                <Button Style="{DynamicResource MetroCircleButtonStyle}" Visibility="Visible" Name="PauseButton"
                                            Width="50" Height="50" HorizontalAlignment="Center"
                                            VerticalAlignment="Center" Click="OnPauseButtonClicked"
                                            d:DataContext="{d:DesignInstance local:MainWindow}">
                    <Rectangle Width="20"
                                                   Height="20">
                        <!--<Image Width="50" Height="50" Source="Resources/playIcon.png"  Name="Image"></Image>-->
                        <Rectangle.Fill>
                            <VisualBrush Stretch="Fill"
                                                             Visual="{StaticResource appbar_control_pause}" />
                        </Rectangle.Fill>
                    </Rectangle>
                    <!--<Image Width="50" Height="50" Source="Resources/playIcon.png"  Name="Image"></Image>-->
                </Button>
            </DockPanel>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

1 个答案:

答案 0 :(得分:1)

使用Grid代替DockPanel

<Grid Width="50" Height="50" VerticalAlignment="Center" HorizontalAlignment="Center">
    <Button Style="{DynamicResource MetroCircleButtonStyle}" Visibility="Hidden" Name="PlayButton"
                                            Width="50" Height="50" HorizontalAlignment="Center"
                                            VerticalAlignment="Center" Click="OnPlayButtonClicked"
                                            d:DataContext="{d:DesignInstance local:MainWindow}">
        <Rectangle Width="20"
                                                   Height="20">
            <!--<Image Width="50" Height="50" Source="Resources/playIcon.png"  Name="Image"></Image>-->
            <Rectangle.Fill>
                <VisualBrush Stretch="Fill"
                                                             Visual="{StaticResource appbar_control_play}" />
            </Rectangle.Fill>
        </Rectangle>
        <!--<Image Width="50" Height="50" Source="Resources/playIcon.png"  Name="Image"></Image>-->
    </Button>

    <Button Style="{DynamicResource MetroCircleButtonStyle}" Visibility="Visible" Name="PauseButton"
                                            Width="50" Height="50" HorizontalAlignment="Center"
                                            VerticalAlignment="Center" Click="OnPauseButtonClicked"
                                            d:DataContext="{d:DesignInstance local:MainWindow}">
        <Rectangle Width="20"
                                                   Height="20">
            <!--<Image Width="50" Height="50" Source="Resources/playIcon.png"  Name="Image"></Image>-->
            <Rectangle.Fill>
                <VisualBrush Stretch="Fill"
                                                             Visual="{StaticResource appbar_control_pause}" />
            </Rectangle.Fill>
        </Rectangle>
        <!--<Image Width="50" Height="50" Source="Resources/playIcon.png"  Name="Image"></Image>-->
    </Button>
</Grid>