能够单击按钮作为背景样式WPF的一部分

时间:2014-10-22 00:00:20

标签: c# wpf button background listbox

我有一个ListBox,有时不包含任何项目。如果此ListBox不包含任何项目,则将显示带有工具提示的按钮形式的水印和通知。我原本在屏幕右下角有按钮。但是要求我将按钮移动到更中心的位置,特别是在ListBox中的水印下方。我最初将按钮移动到ListBox的背景但是没有用,因为我无法获得工具提示或按下按钮。

我的问题是:有没有办法让按钮在ListBox的背景上正常工作。

风格:

            <VisualBrush x:Key="WatermarkStyle" Stretch="None" AlignmentX="Center" AlignmentY="Center">
                <VisualBrush.Visual>
                    <Grid>
                        <Button
                            Margin="0,50,0,0"
                            HorizontalAlignment="Center"
                            VerticalAlignment="Center"
                            Command="{Binding ReloadCommand}"
                            ToolTip="{Binding Path=NotificationTip}"
                            Visibility="{Binding Path=ShowNotification,
                                        Converter={StaticResource TrueToVisibleConverter}}" 
                            Style="{StaticResource StaticStyle}"
                            IsEnabled="{Binding Path=CanReload}">
                            <Image Source="{Binding Path=NotificationIcon}" Stretch="Uniform" Width="35"/>
                        </Button>
                        <TextBlock FontFamily="SEGOEWP" FontSize="22" FontWeight="Normal" HorizontalAlignment="Center"
                               VerticalAlignment="Center" Foreground="Gray" Opacity="1" Text="{Binding BackgroundWatermark}"/>
                    </Grid>
                </VisualBrush.Visual>
            </VisualBrush>

列表框:

        <ListBox x:Name="ListBox"
                 Grid.Row="2"
                 Grid.ColumnSpan="3"
                 BorderThickness="1"
                 ItemsSource="{Binding Path=ListView}"
                 ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                 ScrollViewer.VerticalScrollBarVisibility="Auto"
                 SelectedItem="{Binding SelectedDevice}"
                 SelectionMode="Single">
            <ListBox.Style>
                <Style TargetType="{x:Type ListBox}">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding HasItems, RelativeSource={RelativeSource Self}}" Value="False">
                            <Setter Property="Background" Value="{StaticResource WatermarkStyle}"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ListBox.Style>

0 个答案:

没有答案