控制不使用网格分析器调整大小

时间:2014-02-20 11:17:03

标签: vb.net silverlight gridsplitter

我的屏幕左侧有一个停靠面板,其中包含一个列表框。列表框中填充了在另一个类中定义的自定义项。在我的列表框右侧,我有一个gridsplitter。

当我点击并拖动我的gridsplitter时,列表框会按预期调整大小,但内部的项目却没有。

我希望里面的项目能够相应地调整大小,这样我就可以在控件切断时使用textrimming。

我目前有:

        <Grid.ColumnDefinitions>
        <ColumnDefinition Width="150" MaxWidth="500" MinWidth="100"/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <toolkit:DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,9,0">
        <Button toolkit:DockPanel.Dock="Top" Height="30" Content="Create" Visibility="{Binding Path=IsVisible, Mode=TwoWay}" Command="{Binding Path=Create, Mode=TwoWay}" />
        <ScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalScrollBarVisibility="Auto"  HorizontalScrollBarVisibility="Hidden">
            <ListBox HorizontalAlignment="Stretch" ItemContainerStyle="{StaticResource ItemContainerStyle}" ItemsSource="{Binding Path=ViewModel, Mode=TwoWay}" SelectedItem="{Binding Path=Selected, Mode=TwoWay}">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Vertical" HorizontalAlignment="Stretch">
                                <ContentControl HorizontalAlignment="Stretch">
                                <myNamespace:MycustomControl HorizontalAlignment="Stretch" DataContext="{Binding}" Height="40"/>
                                </ContentControl>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </ScrollViewer>
    </toolkit:DockPanel>
    <sdk:GridSplitter Width="10" HorizontalAlignment="Right" Grid.Row="1" Style="{StaticResource VerticalGridSplitterStyle}" />

同样在我的自定义项目类中,所有内容都定义为Horizo​​ntalAlignment = Stretch并且没有设置固定宽度。

编辑:我也尝试将自定义项目的宽度绑定到我的列表框宽度而没有运气。

1 个答案:

答案 0 :(得分:0)

事实证明,水平滚动条导致了问题(即使它不可见)

ScrollViewer.HorizontalScrollBarVisibility="Disabled"

解决了我的问题