トップページ > プログラム > 2015年03月03日 > 3DfJzsOM

書き込み順位&時間帯一覧

6 位/213 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000130200000006



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part18

書き込みレス一覧

WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part18
831 :デフォルトの名無しさん[sage]:2015/03/03(火) 13:34:58.61 ID:3DfJzsOM
Windows 8がターゲットの業務アプリを作っていてほぼ完成したんですが、やっぱWindows 7でも使うからとか言われて、
Windows 7で起動してみたら、見た目が全然違うし、コントロールが画面からはみ出したりして困ってます。

・Windows 7で起動したときの見た目を、Windows 8で起動したときのようにできますか?(これができるのがベスト)
・上記ができない場合、Windowsサイズをコントロールがちゃんと収まるように自動調整することはできますか?
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part18
833 :デフォルトの名無しさん[sage]:2015/03/03(火) 14:09:05.51 ID:3DfJzsOM
>>832
> WPFならできるよ
WPFスレなので省略したのですが、もちろん、WPFあぷりです。

どうすればできますか?
何か検索できるキーワードがあれば教えてください。
wpf windows 8 windows 7で検索してみたんですが、めぼしいものが見つかりませんでした。
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part18
835 :デフォルトの名無しさん[sage]:2015/03/03(火) 14:49:15.02 ID:3DfJzsOM
>>834
ひょっとすると、私のXAMLの書き方が根本的に間違ってる可能性があります。
以下の書き方であってますか?(属性は抜粋)
<Window Height="400">
 <Grid>
  <Grid.RowDefinitions>
   <RowDefinition Height="340*"/>
   <RowDefinition Height="60"/>
  </Grid.RowDefinitions>

  <StackPanel x:Name="panel1" Grid.Row="0">
   <!-- いくつかのコントロール -->
  </StackPanel>

  <StackPanel x:Name="panel2" Grid.Row="1">
   <!-- いくつかのコントロール -->
  </StackPanel>
 </Grid>
</Window>
画面をリサイズしたときに、panel1の部分だけが高くなるような設定です。

Windows 8でpanel1の内容がちょうど表示される高さが340で、Windows全体の高さを400にしています。
これをWindows 7で見ると、コントロールの種類が替わり(Aeroと言うんでしょうか)、コントロールの大きさが微妙に
大きくなり、panel1の下部が切れたりします。

また、Panel2にもいろいろ詰め込んでいる場合、panel2の下部も切れたりします。
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part18
836 :デフォルトの名無しさん[sage]:2015/03/03(火) 14:52:46.95 ID:3DfJzsOM
ひょっとすると、Windowの属性がいけないのでしょうか。
デフォルトのまま使っています。
<Window x:Class="aaa"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="bbb" Height="400" Width="600">
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part18
839 :デフォルトの名無しさん[sage]:2015/03/03(火) 16:38:32.39 ID:3DfJzsOM
>>837,838
autoはWPFを始めた頃にいろいろ試したのですが、うまく画面サイズを決められなくて、直値を使うようになりました・・・。

例えば、以下のようなコントロールがあるとき、Panel1はこのままでちょうどButtonが5個はいる高さに設定されます。
ところが、WindowのHeightは700px超、panel2もそれにあわせて高くなります。

・panel2の高さをButtonが1個入るだけの高さに
・Windowの高さも、panel1とpanel2が入るだけの高さに
するにはどうすれば良いでしょうか?

<Window Height="auto">
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="auto"/>
      <RowDefinition Height="auto"/>
    </Grid.RowDefinitions>
    <StackPanel x:Name="panel1" Grid.Row="0">
      <Button Height="32"></Button>
      <Button Height="32"></Button>
      <Button Height="32"></Button>
      <Button Height="32"></Button>
      <Button Height="32"></Button>
    </StackPanel>
    <StackPanel x:Name="panel2" Margin="0,10,0,0" Grid.Row="1">
      <Button Height="32"></Button>
    </StackPanel>
  </Grid>
</Window>

なお、2個目のRowDefinitionに「MinHeight="42" MaxHeight="42"」を加えたり、panel2にHeightを設定しても駄目でした。
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part18
841 :デフォルトの名無しさん[sage]:2015/03/03(火) 16:48:51.70 ID:3DfJzsOM
>>840
!!!
<Window Height="auto" SizeToContent="Height">
で全て解決しました!!!

ありがとうございました。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。