标签: expander

如何在WPF扩展器头中对齐TexBlocks

我在Expander Header中有多个Texblock.我希望这些TextBlocks与Left,Right和Center对齐.

我怎样才能实现这一目标?

请帮忙...

谢谢

沙拉斯

红色文本应保持对齐,蓝色文本应居中对齐,绿色应右对齐

请复制XAMLPad.Exe中的代码






wpf header expander

5
推荐指数
1
解决办法
7729
查看次数

WPF Listbox + Expander事件

我在ListBox的ItemTemplate中有一个Expander.渲染很好.我遇到的问题是我希望扩展和/或选择扩展器时触发ListBox_SelectionChanged事件.MouseDown事件似乎没有冒泡到ListBox.

我需要的是ListBox的SelectedIndex.因为ListBox_SelectionChanged没有被触发,索引是-1,我无法确定选择了哪个项目.

如果用户在展开后单击扩展器的内容,则会触发ListBox_SelectionChanged事件.如果他们只点击扩展器,则不会触发该事件.这让用户感到困惑,因为在视觉上,他们认为他们在实际点击Expander Header时已经点击了该项目.我需要在用户扩展扩展器时选择ListBox项目,因为就用户而言,该项目现在被选中,而实际上并非如此.

有关如何使其工作的任何建议或使用扩展器确定列表框的SelectedIndex的替代方法?

简化代码供参考:

<Window x:Class="WpfApplication3.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300"
    Loaded="Window_Loaded">
    <Grid Name="Root">
        <ScrollViewer>
            <ListBox SelectionChanged="ListBox_SelectionChanged" ItemsSource="{Binding}">
                <ItemsControl.ItemTemplate >
                    <DataTemplate>
                        <Border>
                            <Expander>
                                <Expander.Header>
                                    <TextBlock Text="{Binding Path=Name}"/>
                                </Expander.Header>
                                <Expander.Content>
                                    <StackPanel>
                                        <TextBlock Text="{Binding Path=Age}"/>
                                        <TextBlock Text="Line 2"/>
                                        <TextBlock Text="Line 3"/>
                                    </StackPanel>
                                </Expander.Content>
                            </Expander>
                        </Border>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ListBox>
        </ScrollViewer>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

简单的绑定类:

public class Person
{
    public string Name {
        get;
        set;
    }

    public int Age {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

创建和填充绑定数据:

private void Window_Loaded(object sender, RoutedEventArgs e) {

    data …
Run Code Online (Sandbox Code Playgroud)

wpf events listbox expander

5
推荐指数
1
解决办法
9021
查看次数

如何对齐WPF Expander控件切换按钮

嗨,我想知道是否可以将WPF扩展器控件上的切换按钮对齐到最右侧?

wpf controls button expander toggle

5
推荐指数
1
解决办法
6223
查看次数

将可调整大小的Expander从右向左扩展

我想从下面的问题中找到扩展器(参见接受的答案),这对我来说是一个完美的解决方案.我只想把它放在右边.

结合扩展器和网格(可调整大小的扩展器)

为了让它从右向左扩展,我改变了类似行为的设置.(我强调了能够更好地了解正在发生的事情的因素):

<Expander Grid.Column="1" Header="Test" ExpandDirection="Left" 
        BorderThickness="10" BorderBrush="Black" HorizontalAlignment="Right" >
  <Expander.Content>
    <Grid >
       <Grid.ColumnDefinitions>
         <ColumnDefinition Width="Auto"/>
         <ColumnDefinition Width="Auto" />
       </Grid.ColumnDefinitions>
       <GridSplitter Grid.Column="0" Width="10" Background="Green" 
                  ResizeDirection="Columns" ResizeBehavior="CurrentAndNext" />
       <TextBox Grid.Column="1" Text="Lorem ipsum dolor sit" 
             BorderThickness="10" BorderBrush="Red"/>
    </Grid>
  </Expander.Content>
</Expander>
Run Code Online (Sandbox Code Playgroud)

当我将分离器向右移动时,它会调整分离器左侧区域的大小.我尝试了很多其他组合,但它几乎导致了相同的不良行为.分离器左侧区域有时会发生奇怪的爆炸,但TextBox保持不变.

wpf grid xaml expander gridsplitter

5
推荐指数
1
解决办法
6048
查看次数

WPF扩展器样式,其中标头与内容重叠

我想要一个WPF扩展器控件,其中标头与主内容区域重叠.

使用以下XAML

<Expander Header="Details" ExpandDirection="Left">
    <Grid Background="Blue">
        <TextBlock Text="Details content" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="5" Foreground="White"></TextBlock>
    </Grid>
</Expander>
<ScrollViewer Background="Red" HorizontalScrollBarVisibility="Visible" Grid.Column="1">
    <Grid Background="Red">
        <TextBlock Text="Main content"  VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="White" />
    </Grid>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

我最终得到:

IMG1 在此输入图像描述

我想删除白色区域并在内容区域的左上角有箭头,与红色背景重叠.maps.bing.com就是一个类似的例子.

wpf styles header expander overlap

5
推荐指数
1
解决办法
2328
查看次数

选中扩展器时,复选框已选中且未选中的事件被触发

我刚刚注意到这个问题,每当我选择一个父级是复选框的扩展器时,它会触发已检查/未选中的事件,即使未选中该复选框也是如此.

这是一个显示它发生的.gif文件.右上角的数字表示选中的复选框的数量,我设置为只在选中或取消选中框时向上和向下计数.然而,柜台本身不是担心,只是一种表明它发生的方式.

对于每个复选框,他们CheckedUnChecked事件指向我选择的方法.

在此输入图像描述

造成这种情况的原因是什么,我该如何防止这种情况发生?

编辑:XAML

            <Expander Loaded="VerifyExpanderLoaded" ExpandDirection="Down" IsExpanded="True" FontSize="14" FontWeight="Bold" Margin="5" BorderThickness="1" BorderBrush="#FF3E3D3D">
            <Expander.Header>
                <DockPanel RenderTransformOrigin="0.5,0.5" LastChildFill="False" Margin="0" HorizontalAlignment="Stretch">
                    <TextBlock Text="Verify Caller and Account" DockPanel.Dock="Left" VerticalAlignment="Center" Margin="0"/>
                    <Button DockPanel.Dock="Right" Margin="1,0" Click="VerifyUncheckAll">
                        <TextBlock Text="Uncheck All" Margin="1,0" FontSize="12" FontWeight="Normal"/>
                    </Button>
                    <Button DockPanel.Dock="Right" Margin="1,0" Click="VerifyCheckAll">
                        <TextBlock Text="Check All" FontSize="12" FontWeight="Normal" Margin="1,0"/>
                    </Button>
                    <TextBlock x:Name="VerifyCheckboxCount" Text="0/0" DockPanel.Dock="Right" VerticalAlignment="Center" FontSize="16" FontWeight="Bold" Margin="0,0,10,0"/>
                </DockPanel>
            </Expander.Header>
            <ListBox Background="{x:Null}" BorderBrush="{x:Null}">
                <CheckBox x:Name="Authentication_CallerName_Checkbox" HorizontalAlignment="Center" Margin="10,5,0,0" Grid.ColumnSpan="2" FontSize="12" VerticalAlignment="Center" Checked="VerifyCheckBoxChecked" Unchecked="VerifyCheckBoxChecked">
                    <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center"> …
Run Code Online (Sandbox Code Playgroud)

wpf checkbox events xaml expander

5
推荐指数
1
解决办法
581
查看次数

如何设置Expander Direction水平滑动而不是垂直滑动?

我知道这System.Windows.Controls.Expander是WPF中的另一个"headered"内容控件,类似于System.Windows.Controls.GroupBox.一个优点是Expanders能够通过折叠隐藏其内容,并通过扩展显示内容.

我的问题是,如果我想让我Expander从左到右或从右到左水平滑动而不是垂直滑动怎么办?让我们说我有以下内容Expander:

<StackPanel x:Name="RightPanel">
    <Expander x:Name="ExportExpander">
        <StackPanel>
            <TextBlock Name="x" Text="Element One"/>
            <Button Name="y" Content="Element Two"/>
        </StackPanel>
    </Expander>
</StackPanel> 
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml expander

5
推荐指数
1
解决办法
3213
查看次数

如何处理 Html5 &lt;details&gt; 元素的展开/折叠事件?

我使用详细信息/摘要元素来获取可扩展部分:

https://www.w3schools.com/TAGS/tag_details.asp

d3.select('details')
  .on('click',()=>{
     alert('clicked');
  });
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<details>
  <summary>Header</summary>
  <p>Content</p>
  <p>Content</p>
</details>
Run Code Online (Sandbox Code Playgroud)

我想在切换详细信息元素的打开状态时执行操作。我怎样才能这样做呢?

如果我要使用该onclick事件,则当用户单击摘要或内容时也会触发该事件。我只想处理“点击切换箭头”。

html events expander dropdown

5
推荐指数
1
解决办法
1559
查看次数

WPF:使用扩展ListItem创建ListView

所以我想要一个项目列表,当你选择它们时,它们会展开以显示更多信息(没有toggleButton).

我想有多种方法可以做到这一点,但我开始的是我有一个ListView绑定到viewModel集合,然后将ViewModel视图定义为Expander.这里的问题是绑定所选的一个进行扩展.

我开始就如何以不同的方式完成这项工作获得多个想法.也许修改ListView的ControlTemplate,将它的项目设置为我自己的扩展器类型.但是我不确定在为列表设置ItemsSource时效果如何.

问题是我不太确定这里最好的方法是什么.

wpf templates listview expander mvvm

4
推荐指数
1
解决办法
5439
查看次数

扩展扩展器时滚动ScrollViewer

我有一个WPF MVVM应用程序,其中ScrollViewer包含一个带有多个Expanders的用户控件

<UserControl>   
    <Expander>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition />
                ...               
            </Grid.RowDefinitions>

            <Expander Grid.Row="0" />

            <Expander Grid.Row="1" />
            ... 

        </Grid>
    </Expander>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

我怎样才能使扩展的Expander滚动到视图中,以便它的内容可见?

wpf scroll expander mvvm

4
推荐指数
1
解决办法
1618
查看次数