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

あなたのケースでは 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 に答える
1

スタックパネルからグリッドに変更します。Grid.Column 定義を設定します。2 つの列定義を作成する Width を使用して、「比率」幅を設定できます。たとえば、colA Width="5*" および colB Width="3*" は、colA がグリッドの 5/8 を取得し、colB がグリッドの 3/8 を取得することを意味します。この概念を MinWidth と MaxWidth の設定と組み合わせると、準備完了です。

また、コードで幅を設定する場合、多くの場合、'Width' (NaN を返すことがあります) ではなく 'ActualWidth' プロパティを使用して、既存のコントロールの幅を確認する必要があります。

于 2009-07-28T11:17:50.937 に答える