13

ウィンドウを340x146 pxに設定していますが、サイズを変更できません。

デザイナーでは、ウィンドウサイズは正しいです。しかし、私がアプリケーションを実行すると、それは大きくなります。 ここに画像の説明を入力してください

編集:また、レイアウトはCanvasです。

クラシックテーマ:

ここに画像の説明を入力してください

Edit2:

snoopを実行した後(Zachに感謝)、実際の寸法は私が指定したもののようです。ただし、クライアント領域はVisualStudioの領域よりも大きくなります。

ウィンドウのサイズが特定のサイズに固定されると、クライアントのサイズが拡大することがわかりました。ただし、これによりウィンドウ内のCanvasレイアウトが使用できなくなると思います。

Edit3:

<Window x:Class="TI.Presentation.Views.AutentizationWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Authentication" Height="146" Width="340" ResizeMode="NoResize" Background="{StaticResource {x:Static SystemColors.ControlBrushKey}}" >
    <Canvas>
        <Label Canvas.Left="12" Canvas.Top="12" FontSize="15" Width="217">Enter authentication code here:</Label>
        <TextBox Canvas.Left="12" Canvas.Top="38" Height="23" Name="code" Width="294" FontSize="14" />
        <Button Canvas.Top="67" Content="OK" Height="28" Width="100" Canvas.Left="206" FontSize="14" IsDefault="True" Click="OKClick" />
    </Canvas>
</Window>
4

4 に答える 4

8

突っ込んだ後、自分で答えます。

ウィンドウのActualWithとActualHeightは、デザイナで設定されたWidthとHeightに等しくなります。

変化するのは、クライアントエリアです。クライアントのサイズは、ウィンドウのサイズからテーマの境界線を引いたものになります。ただし、これは、テーマに基づいて絶対位置とキャンバスの寸法が変更されるため、キャンバスのデザインを壊します。

Canvasデザインを機能させる方法。Canvasで寸法を設定し、ウィンドウで寸法を削除し、それに応じてウィンドウでSizeToContentを設定します。このように、cavnasの寸法は固定されたままで、ウィンドウサイズはテーマの境界線の考え方に基づいて変化します。

于 2011-01-28T19:02:55.853 に答える
1

ウィンドウにDesignHeightとがDesignWidth設定されていますか?WPFUserControlの設計時間のサイズを参照してください。

編集:私の次の考えは、実行時にスヌープを使用して正確に何が違うのかを確認することです。サイズ、パディング、マージン、または他の何かですか?

于 2011-01-28T18:14:01.633 に答える
1

サイズuがdosentを指定しているという理由だけで、オペレーティングシステムの現在のテーマから取得される境界線が考慮されます... 200x200を設定している場合は、そのフルスペースを取得しています。190x190ボックスに縮小することは望ましくありません。両側に5pxの境界線があるため。それも、Aero、Classicなどのオペレーティングシステムの現在のテーマに変更されます。

于 2011-01-28T18:12:36.733 に答える
0

私はおそらく明白なことを述べていますが、Windowsのテーマが違いのようです。Windowsクラシックテーマに切り替えた場合、それらはどのように比較されますか。

于 2011-01-28T18:13:14.593 に答える