Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# wpf-膨胀机配合内容的标题宽度?_C#_Wpf - Fatal编程技术网

C# wpf-膨胀机配合内容的标题宽度?

C# wpf-膨胀机配合内容的标题宽度?,c#,wpf,C#,Wpf,有没有办法使扩展器的标题适合WPF中可调整大小窗口的最大宽度?看来无论我做什么,我都无法让内容扩展到最大宽度。它在扩展器的内容部分起作用 最快的方法是将表头的宽度绑定到整个扩展器的宽度 <Expander IsExpanded="True"> <Expander.Header> <Grid Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor,

有没有办法使
扩展器的
标题
适合WPF中可调整大小窗口的最大宽度?看来无论我做什么,我都无法让内容扩展到最大宽度。它在
扩展器
内容
部分起作用


最快的方法是将表头的宽度绑定到整个扩展器的宽度

<Expander IsExpanded="True">
  <Expander.Header>
      <Grid Width="{Binding RelativeSource={RelativeSource
            Mode=FindAncestor,
            AncestorType={x:Type Expander}},
            Path=ActualWidth}"
            Height="50">
            <Rectangle Fill="Red"></Rectangle>
      </Grid>
  </Expander.Header>
  <Rectangle Fill="Red"></Rectangle>
</Expander>
添加处理程序以处理加载事件。它更改
ContentPresenter
实例的
HorizontalAlignment
属性:

private void expander_Loaded(object sender, RoutedEventArgs e)
{
    var tmp = VTHelper.FindChild<ContentPresenter>(sender as Expander);
    if (tmp != null)
    {
        tmp.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
    }
}
private void expander\u加载(对象发送方,路由目标)
{
var tmp=VTHelper.FindChild(发送方作为扩展器);
如果(tmp!=null)
{
tmp.HorizontalAlignment=System.Windows.HorizontalAlignment.Stretch;
}
}
将此处理程序连接到扩展器:

<Expander IsExpanded="True" Loaded="expander_Loaded">


这种方法使用代码隐藏,但不适用于任何数据(或ViewModel)。它只改变控件的视觉外观。

最快的方法是将标题的宽度绑定到整个扩展器的宽度

<Expander IsExpanded="True">
  <Expander.Header>
      <Grid Width="{Binding RelativeSource={RelativeSource
            Mode=FindAncestor,
            AncestorType={x:Type Expander}},
            Path=ActualWidth}"
            Height="50">
            <Rectangle Fill="Red"></Rectangle>
      </Grid>
  </Expander.Header>
  <Rectangle Fill="Red"></Rectangle>
</Expander>
        <Expander Name="myexpander" IsExpanded="True" Margin="0,0,1,0">
            <Expander.Header>
                <Grid Width="{Binding ElementName=myexpander, Path=ActualWidth}" Height="50">
                    <Rectangle Fill="Red"></Rectangle>
                </Grid>
            </Expander.Header>

            <Rectangle Fill="Red"></Rectangle>

        </Expander>

    </Grid>
添加处理程序以处理加载事件。它更改
ContentPresenter
实例的
HorizontalAlignment
属性:

private void expander_Loaded(object sender, RoutedEventArgs e)
{
    var tmp = VTHelper.FindChild<ContentPresenter>(sender as Expander);
    if (tmp != null)
    {
        tmp.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
    }
}
private void expander\u加载(对象发送方,路由目标)
{
var tmp=VTHelper.FindChild(发送方作为扩展器);
如果(tmp!=null)
{
tmp.HorizontalAlignment=System.Windows.HorizontalAlignment.Stretch;
}
}
将此处理程序连接到扩展器:

<Expander IsExpanded="True" Loaded="expander_Loaded">

这种方法使用代码隐藏,但不适用于任何数据(或ViewModel)。它仅更改控件的视觉外观。

        <Expander Name="myexpander" IsExpanded="True" Margin="0,0,1,0">
            <Expander.Header>
                <Grid Width="{Binding ElementName=myexpander, Path=ActualWidth}" Height="50">
                    <Rectangle Fill="Red"></Rectangle>
                </Grid>
            </Expander.Header>

            <Rectangle Fill="Red"></Rectangle>

        </Expander>

    </Grid>

为扩展器命名并绑定宽度属性



为扩展器命名并绑定width属性

如何删除箭头?也许会help@JokerMartini查看更新后的帖子。它还显示了一种可以在不删除箭头的情况下解决问题的方法。如何删除箭头?也许会help@JokerMartini查看更新后的帖子。它显示了另外一种方法,可以在不删除箭头的情况下解决问题。