用于禁用ListBox的Powershell WPF样式模板。

问题描述 投票:0回答:0

我有一个powershell脚本,它在某些时候为用户的一些基本输入创建一个WPF表单。ListBoxCheckBoxes 其中用户选择了必要的选项,但它默认是禁用的,用户需要做一些操作才能启用。从下面的XAML中可以看到,整体设计为暗色,所以默认禁用样式为 ListBox 看起来相当丑陋。我需要如何改变下面的XAML,以便在禁用时,至少可以控制背景?我知道,我需要创建一个样式模板,并添加触发器,当 ListBox 是禁用的,但我试了网上找到的几种方法,都没有用。

以下是我使用的XAML文件。

<Window x:Name="MyLittleFormMainWindow" x:Class="MyLittleForm.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:MyLittleForm"
        mc:Ignorable="d"
        Title="My Little Form" Height="450" Width="800" FontFamily="OCRB" FontSize="14" Opacity="0.8" Background="#33000000" Foreground="Lime" BorderBrush="#05000000" WindowStyle="ToolWindow" BorderThickness="0" ResizeMode="NoResize">


    <Grid Margin="0,10,4,0">
        <Grid.RowDefinitions>
            <RowDefinition Height="33*"/>
            <RowDefinition Height="173*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="18*"/>
            <ColumnDefinition Width="61*"/>
        </Grid.ColumnDefinitions>



        <Button x:Name="buttonGetFiles" Content="Press to enable" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="160" Height="48" Background="#F2323232" Foreground="#FFFDA100" FontSize="18" Grid.Column="0" Grid.Row="0"/>
        <ListBox x:Name="checkBoxList" HorizontalAlignment="Left" Margin="10,10,10,10" VerticalAlignment="Top" Width="160" Height="200" ItemsSource="{Binding MyItemsListProperty}" SelectionMode="Multiple" Background="#F2323232" Foreground="#FFFDA100" Grid.Column ="0" Grid.Row="1" IsEnabled="False" >

            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid Margin="2">

                        <CheckBox IsChecked="{Binding isChecked}" BorderBrush="#FF000A64" Background="Lime" Foreground="Lime" Content="{Binding Content}" />

                    </Grid>
                </DataTemplate>

            </ListBox.ItemTemplate>

        </ListBox>
        <Label x:Name="textLabel" Content="My Little Form" Grid.Column="1" Grid.Row ="0" HorizontalAlignment="Right" Margin="10,10,10,10" VerticalAlignment="Top" FontFamily="OCR A Extended" FontSize="42" Foreground="Lime" Height="48" />



    </Grid>
</Window>
wpf powershell templates listbox
© www.soinside.com 2019 - 2024. All rights reserved.