2011-01-28 31 views
12

Yeniden boyutlandırılamayan, 340 x 146 px'ye ayarlı bir pencerem var.Çalışma zamanında neden bir pencere daha büyük?

Tasarımda pencere boyutu doğru. Ama uygulamayı çalıştırdığımda daha büyük. enter image description here

Düzenleme: Ayrıca, düzen Canvas olduğunu.

Klasik tema:

enter image description here

Edit2:

snoop (teşekkürler Zach) çalıştırdıktan sonra, gerçek boyutları belirlediğimden olduğu anlaşılıyor. Ancak istemci alanı görsel stüdyosunda birinden büyük.

Artık, windows boyutu belirli boyutlara sabitlendiğinde istemci boyutunun uzandığını anlıyorum. Ancak bence bu, Canvas düzenini kullanılamaz hale getirir.

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> 
+0

Boyut aynı makinede mi, makineler arasında mı değişiyor? –

+0

@Ben Bunu deneyeceğim. – Kugel

+0

Marjlarla ilgisi olduğundan şüpheliyim ... üst kapsayıcının kenar boşluğunu 0'a ayarlarsanız ne olur –

cevap

6

Buraya kendimden geçtikten sonra kendime cevap vereceğim.

Pencerenin ActualWith ve ActualHeight, tasarımcıda ayarlanmış Genişlik ve Yüksekliğe eşittir.

Ne değişir, istemci alanıdır. Müşterinin boyutları, pencere boyutları eksi tema sınırı olacaktır. Bununla birlikte, bu, Canvas tasarımını kırar, çünkü tamamen yerleştirilmiş ve tuval boyutları temaya göre değişmiştir.

Tuval tasarımının işleyiş şekli. Tuval üzerinde boyutlar ayarlamak, boyutları pencerede kaldırmak ve buna göre SizeToContent öğesini pencereye ayarlamaktır. Bu şekilde, cavnas boyutları sabit kalır ve Pencere boyutu tema sınırının nasıl olduğuna bağlı olarak değişir.

+0

SizeToContent çözüm benim için sorunu çözdü, teşekkür ederim! – Funbit

1

Basitçe u belirtmek boyutu tam uzayda çıkardın 200x200 ayarlıyorsanız ... dikkate İşletim Sisteminin geçerli Tema alınacaktır sınırı almak dosent çünkü. Her iki taraftaki 5px kenarlık nedeniyle 190x190 kutuya indirilmesini istemezsiniz. Ve bu da, Aero, Classic, vb. gibi İşletim Sistemindeki Güncel Tema olarak değişecektir.

+3

Ama sanırım pencerede _padding_ hakkında, özellikle sağ tarafta konuşuyor. – kprobst

+1

Bu yanlış bir cevap, pencerenin iç kısımlarının nasıl büyüdüğünü fark ettiniz mi? – Kugel

+0

oh ben bunu fark etmedim ... bunun için nasıl cevap verelim bakalım ... –

0

Muhtemelen bariz olduğunu söylüyorum, ancak Windows temasının farklı olduğu anlaşılıyor. Windows klasik temasına geçtiğinizde nasıl karşılaştırılır?

1

Pencerede DesignHeight ve DesignWidth ayarlanmış mı? Bakınız WPF UserControl Design Time Size.

Düzenleme: Bir sonraki düşüncem çalışma zamanında tam olarak ne olduğunu görmek için Snoop kullanmayı denemek olurdu. Boyut, dolgu, marj veya başka bir şey mi?

+0

Hayır, değil. – Kugel

+0

@Kugel: Hmmm ... tamam. Cevabımı başka bir öneriyle düzenledim. –

+0

Yorum yazmadan hemen önce Snoop kurulumuna başladım. :-) – Kugel

İlgili konular