我有一个以下的xaml文件
<Window x:Class="NodeXL_Graph_Drawer.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
xmlns:controls="clr-namespace:Technewlogic.Samples.WpfModalDialog"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" DataContext="{Binding RelativeSource={RelativeSource Self}}"
Title="NodeXL Graph" xmlns:my="clr-namespace:Smrf.NodeXL.Visualization.Wpf;assembly=Smrf.NodeXL.Control.Wpf" Loaded="Window_Loaded">
<Grid>
<Grid x:Name="ModalDialogParent" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" x:Name="col1"/>
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" >
<my:NodeXLControl Name="nodeXLControl1" HorizontalAlignment="Left" EdgeSelectedColor="Red" VertexSelectedColor="Red" ShowVertexToolTips="True" VertexClick="nodeXLControl1_VertexClick" SelectionChanged="nodeXLControl1_SelectionChanged" MouseMode="Select" MouseAlsoSelectsIncidentEdges="False" ContextMenuOpening="nodeXLControl1_ContextMenuOpening" GraphLaidOut="nodeXLControl1_GraphLaidOut">
</my:NodeXLControl>
</StackPanel>
<!--<ComboBox Height="23" Margin="39,12,119,0" Name="comboBox1" VerticalAlignment="Top" SelectionChanged="comboBox1_SelectionChanged" />-->
<GridSplitter Grid.Column="1" HorizontalAlignment="Stretch"/>
<StackPanel Grid.Column="2">
<toolkit:DataGrid AutoGenerateColumns="True" Margin="0,62,0,0" Name="grdGraphDetails" ItemsSource="{Binding GraphDetail}" IsReadOnly="True"
HorizontalAlignment="Right" Width="109" MouseLeftButtonUp="grdGraphDetails_MouseLeftButtonUp"
SelectedValuePath="Key" Height="179" />
</StackPanel>
</Grid>
<controls:ModalDialog x:Name="ModalDialog"></controls:ModalDialog>
<controls:ModalDialog1 x:Name="ModalDialog1"></controls:ModalDialog1>
</Grid>
这里我有两个控件NodeXlControl1和Datagrid1在页面上由网格seprator分隔。窗口加载时,NodeXlControl1不在网格列的宽度和高度范围内。我希望nodexlcontrol1应该在网格列的宽度和高度中显示。如果它超出了列宽和高度的限制,滚动条应该会出现。
答案 0 :(得分:0)
如果您的my:NodeXLControl
内部有一些滚动查看器(例如某些基于ItemsControl
或ScrollViewer
的孩子),那么只需将my:NodeXLControl
包裹在Grid
中即可特技。
StackPanel
扩展为溢出孩子们。 Grid
扩展到外部容器的可用空间。
<Grid>
<my:NodeXLControl ... />
应该做的伎俩。
但是如果你my:NodeXLControl
中没有滚动查看器,那么你需要将它包装在其中并为其提供absolute
宽度或高度或将其包裹在Grid
内绑定到其可用的空间并相应地显示滚动条。
e.g。
<Grid>
<ScrollViewer ...>
<my:NodeXLControl ...>