标签: dockpanel

DockPanel ItemsControl lastchild填充

我有一个dockpanel,我使用ItemsControl动态填充以填充面板.dockpanel需要来自itemscontrol列表的最后一个子节点来填充面板的其余部分,但是如果我以这种方式填充它似乎不会发生...我该怎么做才能让最后一个项目扩展?

我如何设置它的片段:(注意我将dockpanel背景设置为蓝色,以便我可以区分填充的用户控件和面板的背景)

        <DockPanel Background="Blue" LastChildFill="True" Margin="0">
        <ItemsControl ItemsSource="{Binding Requirements}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <local:TMGrid2View Baseline="{Binding}"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </DockPanel>
Run Code Online (Sandbox Code Playgroud)

我目前关于发生了什么的假设是将子填充应用于itemscontrol而不是itemscontrol中填充的子代.我过去曾经使用过setter来指定孩子应该停靠在面板的一侧......例如,似乎没有一个子设置器选项来让它扩展...

c# wpf itemscontrol fill dockpanel

0
推荐指数
1
解决办法
5158
查看次数

DockPanel中的LastChildFill不适用于高度

在UserControl我有:

<Grid>
        <DockPanel Grid.Column="0"
                   LastChildFill="True">
            <Label x:Name="ProductName"
                   HorizontalAlignment="Stretch"
                   DockPanel.Dock="Top"
                   Background="Red"
                   Height="60" />
            <Label x:Name="Versie"
                   HorizontalAlignment="Stretch"
                   DockPanel.Dock="Top"
                   Background="Green"
                   Height="20" />
            <Label x:Name="Copyright"
                   HorizontalAlignment="Stretch"
                   DockPanel.Dock="Top"
                   Background="Blue"
                   Height="20" />
            <Label x:Name="Company"
                   HorizontalAlignment="Stretch"
                   DockPanel.Dock="Top"
                   Background="Yellow"
                   Height="20" />
            <Label x:Name="Omschrijving"
                   HorizontalAlignment="Stretch"
                   **--> Answer: add this: VerticalAlignment="Stretch"**
                   Background="Tomato"/>
        </DockPanel>
    </Grid>
Run Code Online (Sandbox Code Playgroud)

我预计最后一个标签会填充dockpanel/grid中的可用垂直空间,因为LastChildFill="True".然而它的高度是10的默认"自动",它不会填充.
最后一个标签不响应DockPanel.Dock,我认为这是好的,结果是LastChildFill="True".

我该怎么做才能让高度填满剩余的高度?

wpf layout xaml dockpanel

0
推荐指数
1
解决办法
3202
查看次数

如何使用ICommand实现DockPanel或Image click?

在我开始之前,这里有一点背景知识.我开始在WPF中创建我的应用程序,就像我以前在WinForms中编程一样.显然,这完全绕过了WPF的优势.所以现在我已经阅读了更多关于WPF和MVVM框架的内容,我开始调整我的应用程序以模型 - 视图 - ViewModel方式工作.

事先,我曾经使用Window的代码隐藏,只是处理了MouseDown RoutedEvents然后继续并提示一个签名窗口.我的DockPanel和Image似乎没有Command.

我怎样才能以MVVM的方式做到这一点?RoutedEvents是解决这种情况的方法吗?

vb.net wpf image mvvm dockpanel

0
推荐指数
1
解决办法
1971
查看次数

仅对齐停靠面板中的可见元素

<DockPanel Grid.Row="1" HorizontalAlignment="Right" Width="300">
    <Button x:Name="startPackageSendButton" Command="{Binding StartPackageSendingProcessCommand}"  Style="{StaticResource blueButtonStyle}" Content="Start" Width="100" VerticalAlignment="Top" Margin="0,0,0,0" Visibility="Visible" HorizontalAlignment="Right"/>
    <Button x:Name="clearPackageSendButton" Command="{Binding ClearPackageSendingProcessCommand}"  Style="{StaticResource blueButtonStyle}" Content="Clear" Width="100" VerticalAlignment="Top" Margin="0,0,0,0" Visibility="Collapsed" HorizontalAlignment="Right"/>
    <Button x:Name="cancelPackageSendButton" Command="{Binding CancelPackageSendingProcessCommand}" Style="{StaticResource blueButtonStyle}" Content="Stop" Width="100" VerticalAlignment="Top" Margin="0,0,0,0" Visibility="Visible" HorizontalAlignment="Right"/>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)

我正在使用Dockpanel水平对齐堆叠一些按钮。如果某些按钮不是,Visible我在按钮之间有空格。

如果按钮未Visibility设置为可见,我如何消除空格?有什么技术可以达到这种效果吗?

编辑:我按照建议将隐藏更改为折叠。

.net c# wpf alignment dockpanel

0
推荐指数
1
解决办法
1592
查看次数

标签 统计

dockpanel ×4

wpf ×4

c# ×2

.net ×1

alignment ×1

fill ×1

image ×1

itemscontrol ×1

layout ×1

mvvm ×1

vb.net ×1

xaml ×1