0

多言語にしようとしているレイアウトがありますが、移行にはいくつかのハードルがあります。

英語:

ここに画像の説明を入力

ドイツ人:

ここに画像の説明を入力

チェックボックスがグリッド内を飛び回っていることがわかりますが、これを他のコントロールと衝突しないように並べ替えるにはどうすればよいですか?

ありがとう

XAML で編集:

<Grid x:Name="Block" Margin="23,70,24.002,153">
            <Rectangle Fill="#FFDDDDDD" Stroke="#FFD7D7D7" Height="54" VerticalAlignment="Top" RadiusX="2" RadiusY="2"/>
            <Rectangle Fill="#FFE8E8E8" Margin="0,19,0,0" Stroke="#FFD7D7D7"/>
            <Label Height="22" Content="{Binding Source={StaticResource localisation}, Mode=OneWay, Path=.[Language.settings]}" HorizontalAlignment="Left" VerticalAlignment="Top" FontSize="10" FontFamily="Myriad Pro" Foreground="#FF585858"/>
            <TextBox MaxLength="2" x:Name="textTimeMin" Margin="175.145,34.336,0,0" TextWrapping="NoWrap" VerticalAlignment="Top" FontFamily="Myriad Pro" Style="{DynamicResource style1Text}" Height="25.2" HorizontalAlignment="Left" Width="30"/>
            <TextBox MaxLength="2" x:Name="textTimeHour" Margin="132.868,34.336,0,0" TextWrapping="NoWrap" VerticalAlignment="Top" HorizontalAlignment="Left" Width="30" FontFamily="Myriad Pro" Style="{DynamicResource style1Text}" Height="25.2"/>
            <Label Content=":" HorizontalAlignment="Left" Margin="162.868,35,0,0" FontSize="11" Foreground="#FF585858" FontFamily="Myriad Pro" VerticalAlignment="Top"/>
            <Label Content="{Binding Source={StaticResource localisation}, Mode=OneWay, Path=.[Language.timeOptions1]}" HorizontalAlignment="Left" Margin="6.148,36.332,0,0" VerticalAlignment="Top" FontSize="11" Foreground="#FF585858" FontFamily="Myriad Pro" Height="23.2"/>
            <Label Content="{Binding Source={StaticResource localisation}, Mode=OneWay, Path=.[Language.timeOptions2]}" HorizontalAlignment="Left" Margin="6.148,67.999,0,52.799" FontSize="11" Foreground="#FF585858" FontFamily="Myriad Pro" Height="23.202"/>
            <Custom:DatePicker x:Name="pickerDate" Margin="134,68.149,188,51.851" d:LayoutOverrides=", Height" FontFamily="Myriad Pro" IsTodayHighlighted="False" Foreground="#FF585858"/>
            <Button x:Name="btnAddTask" Content="{Binding Source={StaticResource localisation}, Mode=OneWay, Path=.[Language.addTask]}" HorizontalAlignment="Left" Margin="8,0,0,8" VerticalAlignment="Bottom" Style="{DynamicResource style1Btn}" Click="btnAddTask_Click" Height="24.65"/>
            <CheckBox x:Name="checkIgnoreDate" Content="{Binding Source={StaticResource localisation}, Mode=OneWay, Path=.[Language.ignoreDate]}" HorizontalAlignment="Right" Margin="0,0,105,55.706" VerticalAlignment="Bottom" Foreground="#FF585858" Background="{x:Null}" Checked="checkIgnoreDate_Checked" Unchecked="checkIgnoreDate_Unchecked" Height="15.96"/>
            <Rectangle x:Name="ignoreDateStrike" Fill="#FF444444" Height="1" Margin="6.148,0,199.32,64" VerticalAlignment="Bottom" Visibility="Collapsed"/>
            <Button x:Name="btnNow" Content="{Binding Source={StaticResource localisation}, Mode=OneWay, Path=.[Language.now]}" Margin="206.088,34.27,176.585,0" VerticalAlignment="Top" Style="{DynamicResource style1Btn}" Height="25.2" FontSize="9.333" Click="btnNow_Click"/>
        </Grid>
4

1 に答える 1

1

スクリーンショットとコードがあれば、いくつかの方法でこれを行うことができます。

列が自動サイズ調整される 3 列 3 行のグリッドを使用することをお勧めします。これにより、フィールドの長さに関係なく、すべてがうまく整列し、うまく収まるようになります。

ここに画像の説明を入力

グリッド コードは次のようになります。

<Grid x:Name="Block">
<Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
...   
</Grid>

次に、余白をハードコーディングする代わりに、グリッド内の各項目に適切な行と列を設定するだけです。

   <Button x:Name="btnAddTask" Grid.Row="1" .... />
于 2012-05-23T21:54:30.563 に答える