2009-07-28 32 views
1

在使用XAML的WPF應用程序中,我創建了一個堆疊面板(寬度爲1030),並且我有2個圖像。 1. imgClient寬度= 784高度= 66和2. imgClientExtra寬度= 1和高度= 66圖片在WPF中以編程方式拉伸

imgClientExtra將正確結束,imgClient將從leftend開始。

因此,當應用程序未運行時,圖像將適合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> 

請從一個StackPanel到網格幫助 感謝 拉姆

回答

1

變化。 設置Grid.Column定義。 創建2列定義 您可以使用「寬度」來設置「比例」寬度。 例如,colA Width =「5 *」和colB Width =「3 *」表示colA獲取網格的5/8,colB獲取網格的3/8。 結合這個概念同時設置MinWidth和MaxWidth,你應該很好去。

此外,在代碼中設置寬度時,通常需要使用'ActualWidth'屬性而不是'Width'(有時返回NaN)來檢查現有的控件寬度。

+0

H Darkwing ..我編輯我的查詢,並在這裏添加了xaml代碼..我是否需要用網格替換stackpanel(imgStkPnl)來工作這個/? 感謝 – Ramm 2009-07-28 11:31:24

+0

嗨...... 只需添加這部分..我想我錯了,還是 <電網的Horizo​​ntalAlignment = 「左」 HEIGHT = 「66」> 實際圖像是 | ____________ || _ |當ap應用程序沒有運行時。但是當我運行該應用程序時,它應該是 | ___________________________________________________________ || _ | 請幫忙 謝謝 Ramm – Ramm 2009-07-28 11:56:11

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> 
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>