我对WPF很新,而且我对绑定感觉非常好,但我对标记感觉不太舒服。我使用Grid和DockPanel很多,并且可能不是以最有效的方式。我只是插手,直到我得到看起来大致正确的东西。
关于下面的代码,我所看到的是图像占据了所需的空间(均匀增长)。在图像达到最大尺寸后,如果需要,ItemList将增长以填充剩余空间,然后按钮。我想改变它,以便可以从视图框中删除按钮,图像只会增长,直到它进入按钮使用的空间。
<DockPanel LastChildFill="False" >
<Grid DockPanel.Dock="Bottom" x:Name="Images">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<DockPanel Grid.Column="0">
<TextBlock DockPanel.Dock="Bottom" />
<Button HorizontalAlignment="Center" VerticalAlignment="Bottom">
<Image Stretch="Uniform" />
</Button>
</DockPanel>
<DockPanel Grid.Column="1">
<TextBlock DockPanel.Dock="Bottom" />
<Button HorizontalAlignment="Center" VerticalAlignment="Bottom">
<Image Stretch="Uniform" />
</Button>
</DockPanel>
</Grid>
<GroupBox DockPanel.Dock="Right" VerticalAlignment="Top" x:Name="ItemList">
<ListView>
<ListView.View>
<GridView>
<GridViewColumn />
</GridView>
</ListView.View>
</ListView>
</GroupBox>
<Viewbox DockPanel.Dock="Right" StretchDirection="DownOnly" VerticalAlignment="Top">
<StackPanel Width="180" x:Names="Buttons">
<Button Height="105" />
<Button Height="105" />
</StackPanel>
</Viewbox>
</DockPanel>
如图所示,理想情况下,我希望图像(I)包含两个相同大小的按钮,彼此相邻。这些按钮的背景是图像。这些按钮应尽可能大,但不应妨碍按钮(B)占用的空间,也不要超出可用于均匀拉伸的空间。 ItemList(IL)应该从均匀拉伸中留下任何剩余的空间(如果有的话)。
_____________
| | |
| | |
| B | |
| | IL |
|______| |
| |
_________________|______|
| |
| |
| I |
| |
|________________________|
谢谢 - 德里克
答案 0 :(得分:0)
我希望此代码能为您提供帮助:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DockPanel LastChildFill="False">
<GroupBox DockPanel.Dock="Right" x:Name="ItemList">
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn />
</DataGrid.Columns>
</DataGrid>
</GroupBox>
<StackPanel DockPanel.Dock="Right" Width="180" x:Name="Buttons">
<Button Height="105" />
<Button Height="105" />
</StackPanel>
</DockPanel>
<Grid x:Name="Images" Grid.Row="1" Style="{StaticResource HideImages}">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<DockPanel Grid.Column="0">
<TextBlock DockPanel.Dock="Bottom" />
<Button HorizontalAlignment="Center" VerticalAlignment="Bottom">
<Image Stretch="Uniform" />
</Button>
</DockPanel>
<DockPanel Grid.Column="1">
<TextBlock DockPanel.Dock="Bottom" />
<Button HorizontalAlignment="Center" VerticalAlignment="Bottom">
<Image Stretch="Uniform" />
</Button>
</DockPanel>
</Grid>
</Grid>