组织ScatterViewItem中的控件布局

时间:2010-11-11 18:15:13

标签: .net wpf datatemplate pixelsense scatterview

我有一个散点图项目,按顺序提到的顺序包含以下内容。

  1. TextBlock将显示1-3行文本 - TextBlock1

  2. 图像尺寸会因图像分辨率而异,但我会在属性中设置最小高度和宽度。

  3. TextBlock - 这将显示1-10行文本 - TextBlock2

  4. 表面切换按钮

  5. 现在用户可以缩放此项目,因此我已将其放入视图框中。 XAML代码如下:

    <DockPanel LastChildFill="False">
        <TextBlock Name="ItemTitle" DockPanel.Dock="Top" HorizontalAlignment="Left" VerticalAlignment="Top" Width="120"  Margin="10"  TextWrapping="Wrap"  Visibility="Visible" Padding="2" />
        <s:SurfaceToggleButton  DockPanel.Dock="Bottom" Checked="ItemInfo_Checked" Unchecked="ItemInfo_Unchecked" Margin="5,5,5,5" HorizontalAlignment="Center" VerticalAlignment="Center">Display more info</s:SurfaceToggleButton>
        <Viewbox DockPanel.Dock="Bottom" Stretch="Uniform" MinHeight="100">
            <StackPanel>
                <Image Name="ItemImage" Margin="5,5,5,5"    Visibility="Visible" />
                <TextBlock DockPanel.Dock="Bottom" Name="ItemDesc" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="10"  TextWrapping="Wrap"  Visibility="Visible" Padding="2" />
            </StackPanel>
        </Viewbox>
    </DockPanel>
    

    结果显示中的问题是:

    1. TextBlock2显示相对于其他项目的文字非常小。

    2. 由于TextBlock2以小尺寸显示文本并且在stackpanel内部,因此未在TextBlock1的左侧对齐。

    3. 我使用了Viewbox,这样当用户缩放项目时,它会增加文本和图像的大小。

      有更好的方法吗?可以使用DataTemplates帮助解决此问题或其他问题吗?

1 个答案:

答案 0 :(得分:0)

使用单独的视图框包装图像和文本块元素