1

在使用 XAML 的 WPF 应用程序中,

我创建了一个堆栈面板(宽度 1030),我有 2 个图像。1.imgClient 宽度 = 784 高度 = 66 和 2.imgClientExtra 宽度 =1 和高度 = 66

imgClientExtra 将在右端,imgClient 将从左端开始。

因此,当应用程序未运行时,图像将适合 784 + 1,总图像宽度为 785(784+1).. 但是,如果应用程序正在运行.. 图像必须拉伸到 1030... imgClientExtra 将位于 1030,而 imgClient 将不得不仅拉伸到 1029..

我使用了stretch.fill ...但没有用。

目前我正在使用这种方式......这需要修改吗?

     <StackPanel Name="stkpnlHeader" Margin="0,0,0,0" Width="1254.662" Height="auto" HorizontalAlignment="Left" VerticalAlignment="Top">
                <StackPanel Name="imgStkPnl"Orientation="Vertical" Width="1253.511" HorizontalAlignment="Left">
                    <Image Name="imgClientPhoto" HorizontalAlignment="Left" VerticalAlignment="Top" Width="784" Height="66" 
                   Source="D:\ehtmp_top_left.gif" Stretch="Fill" StretchDirection="Both">

                    </Image>
                    <Image Name="imgExtraImg"   Width="1" Height="66" Margin="0,-66,0,0" HorizontalAlignment="Right" 
                       Source="D:\ehtmp_top_right.gif"
                       ></Image>
                </StackPanel> </StackPanel>
4

3 回答 3

1

从堆栈面板更改为网格。设置 Grid.Column 定义。创建 2 列定义您可以使用 Width 设置“比率”宽度。例如,colA Width="5*" 和 colB Width="3*" 表示 colA 获得网格的 5/8,colB 获得 3/8 的网格。将此概念与设置 MinWidth 和 MaxWidth 相结合,您应该很高兴。

此外,在代码中设置宽度时,您通常需要使用“ActualWidth”属性而不是“Width”(有时返回 NaN)来检查现有控件的宽度。

于 2009-07-28T11:17:50.937 回答
1

我认为您的情况下的 DockPanel 会起作用,因为它会自动拉伸最后一个元素(我没有尝试构建此代码,所以如果它不起作用,请告诉我):

<DockPanel Height="66">
    <Image Name="imgExtraImg" Source="D:\ehtmp_top_right.gif" DockPanel.Dock="Right"/>
    <Image Name="imgClientPhoto" Source="D:\ehtmp_top_left.gif"/>
</DockPanel>
于 2009-07-28T14:12:05.200 回答
1
<Grid HorizontalAlignment="Left" Height="66" Name="imgGrid">
   <Grid.ColumnDefinitions>
     <ColumnDefinition Width="*"></ColumnDefinition>
     <ColumnDefinition Width="Auto"></ColumnDefinition>

       </Grid.ColumnDefinitions>
         <Grid.RowDefinitions>
           <RowDefinition Height="66"/>
         </Grid.RowDefinitions>

     <Image Name="imgClientPhoto" Grid.Column="0" Stretch="Fill"Source="D:\eHTMP\Exclusively_My_Work\UI_Application\Images\ehtmp_top_left.gif" ></Image>
<Image Name="imgExtraImg"  Grid.Column="1"Source="D:\eHTMP\Builds\output\WPF_Example\UI_eHTMP\UI_eHTMP\Icons\ehtmp_top_right.gif"></Image></Grid>
于 2009-07-29T06:21:17.027 回答