2016-09-06 3 views
0

私は今、WinFormsからWPFに切り替えました。
私が今直面している問題は、特定のポイントの後にの後に、私がアプリケーションを実行すると、以下のすべてが切断されます(デザイナーで私はすべてを参照してください)。WPFフォームが特定のポイント以下のものをすべて切り捨てます

幅は1920、高さは1080です。私はWindowState="Maximized"を使用しています。おそらくその理由は?私は再びフルスクリーンが、あるアプリケーションを作成したい

- 特定のポイントの後は、以下のすべてが、私はちょうどどこに置きたい アプリケーションを実行したときに切断されます、そして彼らのために滞在します特別なものはありません。ですから、「グリッド」は必要ないかもしれませんか?ここ
はのXmaIのコードは次のとおりです。

<Window x:Class="KodeOS.MainWindow" 
    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:KodeOS" 
    mc:Ignorable="d" 
    Title="KodeOS" Height="1080" Width="1920" WindowStartupLocation="CenterScreen" WindowState="Maximized" WindowStyle="None"> 
<Grid> 
    <Grid.Background> 
     <ImageBrush ImageSource="pack://siteoforigin:,,,/Resources/kdroid_wallpaper1.png"/> 
    </Grid.Background> 
    <Label x:Name="label" Content="KodeOS" HorizontalAlignment="Left" VerticalAlignment="Top" FontFamily="Segoe Print" FontSize="18.667" Margin="10,0,0,0" Foreground="White"/> 
    <Label x:Name="label1" Content="by Kamil" HorizontalAlignment="Left" Margin="10,24,0,0" VerticalAlignment="Top" FontFamily="Segoe Print" Foreground="White"/> 
    <Button x:Name="button" Content="After here everything will be cut off" HorizontalAlignment="Left" Margin="18,665,0,0" VerticalAlignment="Top" Width="255" RenderTransformOrigin="0.526,-0.807" Height="44"/> 
    <Button x:Name="button_Copy" Content="I'm past the cut off zone" HorizontalAlignment="Left" Margin="37,814,0,0" VerticalAlignment="Top" Width="179" RenderTransformOrigin="0.526,-0.807" Height="30"/> 

</Grid> 

+0

[このシンプルなチュートリアルが役立つかもしれません](http://www.wpf-tutorial.com/panels/grid/) – nabulke

+0

@nabulkeグリッドを追加すると助けになるとは思いません。たぶんあなたはそれを実行しようとすることができますし、問題が何かを参照してください?また、コントロール(ボタン、ラベルなど)の位置がデザイナーに表示される位置よりも低くなる可能性もあります。 – Kamdroid

+0

あなたの例ではすでに 'Grid'があります。このリンクでは、正しく使用する方法と間違った結果が生じる理由が説明されています。 – nabulke

答えて

0

私はGrid.RowまたはGrid.Columnは、このようなラベルやボタンなど、あなたのコントロールに割り当てられて表示されません。グリッドシステムは、Winformのテーブルレイアウトのように少し機能します。

通常、グリッドレイアウトでは、要素をRenderTransformOrigin、Margns、Vertical/Horizo​​ntal Alignmentと整列させる必要はなく、適切なグリッドレイアウトを設定するだけで済みます。

要素(ボタン、ラベルなど)をグリッドコントロールに配置しています。 Gridコントロールの仕組みは、これらの要素に関連付けられたColumn/Row値に基づいてすべての項目を並べ替えることです。 Row = 0、Col = 0にラベルを入れ、ボタンをRow = 0、Col = 1にする)。これらの値を省略すると、デフォルトの行/列が使用されます。これはゼロです。

これは、すべての要素が本質的に重なり合うが、移動方法ではない余白/余白などの他のスペーシングプロパティに基づいて、それらを互いに離して配置することを意味する。

+0

私は本当に理解していません。 'Grid.Row' /' Grid.Column'を自分のコントロールに割り当てる必要があるのはなぜですか?そしてどうやって?前にWinformでテーブルレイアウトを使用していませんでした。 – Kamdroid

+1

@Kamdroid答えを明確にして、それが役立つかどうかを確認してください。これは基本的なWPFレイアウトシステムです。あなたが慣れていないなら、WinFormsとまったく同じではないので、本を読んでおくことをお勧めします。 –

1

基本的にはマージンを定義して、グリッド内のコンテンツを揃えていない - あなたがラベル/ボタン/例えばどのような

、コードのこの部分には、専用の行と列を割り当てる必要が

<Grid Background="Gray"> 
    <Grid.RowDefinitions> 
     <RowDefinition></RowDefinition> 
     <RowDefinition></RowDefinition> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"></ColumnDefinition> 
     <ColumnDefinition Width="Auto"></ColumnDefinition> 
    </Grid.ColumnDefinitions> 

    <Label x:Name="label" Grid.Column="0" Grid.Row="0" Content="KodeOS" HorizontalAlignment="Left" VerticalAlignment="Top" FontFamily="Segoe Print" FontSize="18.667" Foreground="White"/> 
    <Label x:Name="label1" Grid.Column="1" Grid.Row="0" Content="by Kamil" HorizontalAlignment="Left" VerticalAlignment="Top" FontFamily="Segoe Print" Foreground="White"/> 
    <Button x:Name="button" Grid.Column="0" Grid.Row="1" Content="After here everything will be cut off" HorizontalAlignment="Left" VerticalAlignment="Top" Width="255" Margin="5" Height="44"/> 
    <Button x:Name="button_Copy" Grid.Column="1" Grid.Row="1" Content="I'm past the cut off zone" HorizontalAlignment="Left" VerticalAlignment="Top" Width="179" Margin="5" Height="30"/> 

</Grid> 
あなたが手動でオブジェクトを配置したい場合は、あなたが Canvasコンテナを使用することができます enter image description here

、あなたはとそこにコンテンツを配置することができます:

は、そのようなレイアウトになります例えばCanvas.Top`

<Canvas Background="Gray"> 

    <Label x:Name="label" Canvas.Left="25" Canvas.Top="5" Content="KodeOS" HorizontalAlignment="Left" VerticalAlignment="Top" FontFamily="Segoe Print" FontSize="18.667" Foreground="White"/> 
    <Label x:Name="label1" Canvas.Left="55" Canvas.Top="55" Content="by Kamil" HorizontalAlignment="Left" VerticalAlignment="Top" FontFamily="Segoe Print" Foreground="White"/> 
    <Button x:Name="button" Canvas.Left="75" Canvas.Top="125" Content="After here everything will be cut off" HorizontalAlignment="Left" VerticalAlignment="Top" Width="255" Margin="5" Height="44"/> 
    <Button x:Name="button_Copy" Canvas.Left="125" Canvas.Top="205" Content="I'm past the cut off zone" HorizontalAlignment="Left" VerticalAlignment="Top" Width="179" Margin="5" Height="30"/> 

</Canvas> 

はそのように判明します: enter image description here

しかし、あなたが動的に画面に反応することができないので、一般的に私は、そのために行くだろう - サイズの変更

+0

ありがとうございますが、私はそれをフルスクリーン(最大化)WPFアプリケーションとして作成しようとしています。私は特別な方法でコントロールを配置する必要はありません、私はちょうどどこにそれらを配置し、彼らがそこにとどまるためにしたいです。高さは1080で、幅は1920(私の画面解像度)であり、ウィンドウの状態は最大化されています。デザイナーでは、すべてがうまく見えますが、私がそれを実行すると、ある点以下のものは切り捨てられます。 – Kamdroid

+0

あなただけがプログラムを使用する場合、それは問題ありません。しかし、もし他の人がそれを使うなら、解像度は800x600であっても、あなたのウィンドウの半分も見ないでしょう。 – mcy

関連する問題