2017-02-28 1 views
2

WPF Vb.netベースのウィンドウで画像に問題があります。
イメージコントロールが、マージンが0のウィンドウの中央に直接配置されていない場合は、実行時に表示されません。ウィンドウ内に直接配置されていないと画像が消える[余白が「0」でない]

<Image x:Name="loaderlogo" Height="55" Margin="1825,985,40,40" Width="55" Stretch="Fill"/> 
    <Image x:Name="tips" Height="128" Margin="0,732,0,220" Width="1920" Stretch="Fill" Opacity="0.9"/> 

両方が1行1列(新しいウィンドウを作成するときがあり、デフォルトのグリッド)と、グリッド内に含まれています。ここでは

は、両方の画像のためのXAMLコードです。

このコードが実行される場合、これらの画像は、私がマージン

Margin="0" 

を作るなら、彼らはうまく表示されますが、コントロールの中心部に

がどのように私はそれを行うことができますが表示されません。マージンがゼロでない場合、私はイメージのどこでも場所が、フォームの中心を移動した場合のコントロールがまだ(表示されるように

私は、画像ファイルを取得するために使用するコードは次のとおりです。?

死んだセンターでは画像が完全に正常に機能するので、問題はXAMLにあると思っていますが、どこではわかりません。水平/垂直アライメントを変更しましたが、マージンが0である限り、画像は中央に表示されます。

編集:以下は、私がコントロールを希望する位置です。左下は 'loaderlogoウィンドウの向こう側にあるバンドは 'ヒント'コントロールです。

tips band position

loaderlogo position

EDIT 2:以下は、ウィンドウの全体XAMLコードである:

<Window x:Class="loadingwindow" UseLayoutRounding="True" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:applicationname" 
    mc:Ignorable="d" 
    Title="loadingwindow" Height="1080" Width="1920" AllowsTransparency="True" WindowStyle="None" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" WindowState="Maximized" Loaded="Window_Loaded"> 
<Window.Triggers> 
    <EventTrigger RoutedEvent="Window.Loaded"> 
     <BeginStoryboard> 
      <Storyboard> 
       <DoubleAnimation Duration="00:00:01" Storyboard.TargetProperty="Opacity" From="0" To="1" Completed="DoubleAnimation_Completed"/> 
      </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger> 

</Window.Triggers> 
<Grid> 
    <Image x:Name="loaderlogo" Height="55" Margin="1825,985,40,40" Width="55" Stretch="Fill"/> 
    <Image x:Name="tips" Height="128" Margin="0,732,0,220" Width="1920" Stretch="Fill" Opacity="0.9"/> 

</Grid> 

+0

解決方法はイメージの配置方法によって異なります。彼らはどこにあるべきですか? screenshot maybe – ASh

+0

返事ありがとう、@ ASh。元の投稿に位置画像のスクリーンショットを追加しました。 –

+0

ウィンドウXAML全体を投稿してください。 –

答えて

0

大マージンは要素を配置するための最悪の方法です。より良いアプローチは、正しいレイアウトパネルを使用し、要素の正しい配置を行うことです。小さなマージンで要素間にスペースを追加することは問題ありません。

Gridパネルは、多くの場合、多くの場合、RowDefinitionsとColumnDefinitionsで使用されます。要素は異なる行と列に配置され、レイアウトはサイズの変更に適応します

<Grid> 
    <Grid.RowDefinitions> 
    <RowDefinition/> 
    <RowDefinition Height="Auto"/> 
    <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 

    <Image x:Name="tips" Grid.Row="1" Height="128" Width="1920" Stretch="Fill" Opacity="0.9"/> 
    <Image x:Name="loaderlogo" Grid.Row="2" Height="55" Width="55" Margin="10" 
     HorizontalAlignment="Right" Stretch="Fill"/> 
</Grid> 
+0

完璧に動作します!ありがとうございました@ASh! –

関連する問題