WPF数据绑定问题

时间:2011-05-10 16:36:44

标签: c# wpf data-binding grid tabcontrol

我在选项卡上的画布中有一个网格。 网格包含一个大的位图图像, 我(尝试)将网格的大小绑定到选项卡的大小,并且在网格周围也有一个5像素的边距。

imageTab.cs

    public ImageTab(SendInfo sendInfo, int numImge, int numAccs)
    {
        imageDisplay = new ImageDisplay(sendInfo, numImge, numAccs);
        imageDisplay.ClipToBounds = true;
        CreateCanvas();
    }

    private void CreateCanvas()
    {
        Canvas canvas = new Canvas();
        canvas.Children.Add(imageDisplay);
        this.AddChild(canvas);
    }

ImageDisplay.xaml

<UserControl x:Class="MyProj.ImageDisplay">

      <Grid Margin="5,5,5,5" Height="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=TabControl, AncestorLevel=1}, Path=ActualHeight}">
          <Image/>
      </Grid>

</UserControl>

网格从标签区域的底部脱落,略微导致图像底部被切断。 我的数据绑定是否有问题,是否需要对其应用某种偏移? (标签的大小 - 保证金的10个像素?)

1 个答案:

答案 0 :(得分:1)

你根本不需要设置Height属性(当你考虑5像素边距时,也会发现这样做是不正确的,即它会偏离10像素)。

只需将VerticalAlignmentHorizontalAlignment保留为默认值(Stretch),即可获得此后的效果。

在新的Window上试试看我的意思:

<Window x:Class="WpfApplication9.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="438" Width="587" Background="Pink">
    <Grid Background="Black"  Margin="5">

    </Grid>
</Window>

此处的网格将为黑色,并且将始终拉伸至窗口大小,使用5像素边距,您将看到,因为窗口的背面颜色为粉红色。