回答編集履歴

1

見直しキャンペーン中

2023/07/27 15:21

投稿

TN8001
TN8001

スコア9884

test CHANGED
@@ -1,43 +1,22 @@
1
1
  > Widthとかを決めてないからかもしれませんが
2
-
3
2
  > 親の値を引き継ぐものだと思っていたので、どうしてこの状況になるのかよくわかっていません。
4
3
 
5
-
6
-
7
4
  `Canvas`はちょっと特殊で子のサイズを調整しません。
8
-
9
5
  例えばサイズを入れていない`Rectangle`を`Grid`に入れた場合は引き延ばされますが、`Canvas`に入れるとサイズが0になり「あれ?」と思う時があります。
10
6
 
11
-
12
-
13
7
  一応この辺りに書いてあるのですが、自動翻訳がひどすぎて何を言っているのかさっぱりわかりません^^;
14
-
15
8
  [Canvas クラス (System.Windows.Controls) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.controls.canvas#remarks)
16
9
 
17
10
 
18
-
19
-
20
-
21
11
  別に`Image`にサイズ指定できない事情があるわけではないんですよね?
22
-
23
12
  拡大されるのが嫌な場合は、`StretchDirection="DownOnly"`があります。
24
-
25
13
  あるいは`MaxWidth`・`MaxHeight`でもいいでしょう。
26
14
 
27
-
28
-
29
- ```xaml
15
+ ```xml
30
-
31
16
  <Image Width="700" Height="700" StretchDirection="DownOnly" HorizontalAlignment="Left" VerticalAlignment="Top" />
32
-
33
17
  <Image MaxWidth="700" MaxHeight="700" HorizontalAlignment="Left" VerticalAlignment="Top" />
34
-
35
18
  ```
36
-
37
-
38
19
 
39
20
  > それは最終的にImageのWidthとかを取得すればいけるのかなと思っています。
40
21
 
41
-
42
-
43
22
  `Width`や`MaxWidth`を指定すると実際のサイズがうまく取れないので、`ActualWidth`・`ActualHeight`がいいでしょう。