Заголовок GroupBox в WPF глотают щелчки мышью?

Использование ArrayList<Integer> может помочь вам решить проблему перетасовки, не применяя большую логику и потребляя меньше времени. Вот что я предлагаю:

ArrayList<Integer> x = new ArrayList<Integer>();
for(int i=1; i<=add.length(); i++)
{
    x.add(i);
}
Collections.shuffle(x);
41
задан Matt Hamilton 1 October 2008 в 14:37
поделиться

2 ответа

Это, кажется, тонкая ошибка в шаблоне управления для GroupBox. Я нашел путем редактирования шаблона по умолчанию для GroupBox, и перемещение Границы под названием 'Заголовок' к последнему объекту в управлении обрабатывает элемент Сетки по шаблону, проблема разрешает себя.

причина состоит в том, что тот из других элементов Границы с TemplateBinding BorderBrush далее снизился в визуальном дереве и получал щелчок мышью, вот почему устанавливание в NULL BorderBrush позволило CheckBox правильно получать щелчок мышью.

Ниже заканчивается стиль для GroupBox. Это почти идентично шаблону по умолчанию для управления, за исключением элемента Границы под названием 'Заголовок', который является теперь последним ребенком Сетки, а не вторым.

<BorderGapMaskConverter x:Key="BorderGapMaskConverter"/>

<Style x:Key="GroupBoxStyle1" TargetType="{x:Type GroupBox}">
    <Setter Property="BorderBrush" Value="#D5DFE5"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type GroupBox}">
                <Grid SnapsToDevicePixels="true">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="*"/>
                        <RowDefinition Height="6"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="6"/>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="6"/>
                    </Grid.ColumnDefinitions>
                    <Border Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="1" Grid.RowSpan="3" Background="{TemplateBinding Background}" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="4"/>
                    <ContentPresenter Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="2"/>
                    <Border Grid.ColumnSpan="4" Grid.Row="1" Grid.RowSpan="3" BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="4">
                        <Border.OpacityMask>
                            <MultiBinding Converter="{StaticResource BorderGapMaskConverter}" ConverterParameter="7">
                                <Binding Path="ActualWidth" ElementName="Header"/>
                                <Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}"/>
                                <Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}"/>
                            </MultiBinding>
                        </Border.OpacityMask>
                        <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
                            <Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/>
                        </Border>
                    </Border>
                    <Border x:Name="Header" Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" Padding="3,1,3,0">
                        <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" ContentSource="Header" RecognizesAccessKey="True"/>
                    </Border>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
19
ответ дан Ian Oakes 23 September 2019 в 15:34
поделиться

При изменении BorderBrush GroupBox он работает!

<GroupBox BorderBrush="{x:Null}">

я знаю, что это побеждает цель, но действительно оказывается, где проблема заключается!

4
ответ дан rudigrobler 23 September 2019 в 15:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: