Bu soruna çok fazla çözüm okudum. bunların her biri benim problemimi çözmek için başarısız. Kontrole hangi konteynırı koyduğum önemli değil ya da kontrol/konteynırda hangi özellikleri belirlediğime bakmayın. İçinde kontrole sahip bir kaydırma görüntüleyicim var. Kullanıcı çalışma zamanında yeniden boyutlandırdığında, pencereyle yeniden boyutlandırılmasını istiyorum. Tek ihtiyacım olan çapa = üst, alt, sol, sağ. Bunun WPF'de neden bu kadar zor olduğunu anlamıyorum ve neden Konteyner nesnelerinin ve her türlü mülkün görevlendirilmesinin, Formlar'da tek bir mülkün yapılabildiğini başarmak için neden yer alması gerektiğini anlamıyorum. Ancak, bu soruna her çözüm hala benim çalışma zamanımda pencere yeniden boyutlandırılırken denetimimin tam olarak tasarım süresi boyutunda kalmasıyla sonuçlanır. Wpf'de dinamik kontrol boyutlandırmasında bir kavrama elde etmenin kolay yolu nedir?WpF'de kontrollerin yeniden boyutlandırılması nasıl yapılır, çapa/yuva özelliklerinin eşdeğeri
cevap
kontrol germek gerekiyor, hepsi buna olmalıdır var:
<MyControl HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
Stretch
gelen yanları hem achors ayarı değiştirir.
Paneller hakkındaki yardım için bkz. this overview. Ayrıca documentation of the layout system'a bakın.
Çoğu denetimleri otomatik germek, bunu da germek Kaxaml bu örnek denemelisiniz DataGrid varsa, onun büyüklüğünü gösteren bir DataGrid ve bir TextBlock içerir: Camı boyutu ise
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<DataGrid Name="grid">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}" Header="Name"/>
<DataGridTextColumn Binding="{Binding Tag}" Header="Occupation"/>
</DataGrid.Columns>
<FrameworkElement Name="Skeet" Tag="Programmer"/>
<FrameworkElement Name="Gravell" Tag="Programmer"/>
<FrameworkElement Name="Steve" Tag="Coffee Getter"/>
</DataGrid>
<TextBlock Grid.Row="1">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {1}">
<Binding ElementName="grid" Path="ActualWidth"/>
<Binding ElementName="grid" Path="ActualHeight"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Grid>
</Window>
DataGrid'in ScrollBar'ları görünmelidir.
Ben hizalama ayarlarının her birleşimini denedim. her seferinde kontrol, tasarım zaman boyutlarında kesinlikle kalır. Yeniden boyutlandırmayı engelleyen başka bir şey olmalı, sadece ne olduğunu göremiyorum. Kontrol içindedir – Mike
paneli aksi takdirde germek için mümkün olmayacaktır, sınırları sunduğu bir ScrollViewer Bunun tüm amacı mümkün her boyuttaki denetimleri görüntülemek için yapım olduğundan, normalde kendi içeriklerini kısıtlamak olmadığını yapmaz. Düzenleme: Aslında bazı durumlarda ScrollViewer ile çalışır, bazı durumlarda, kontrolüne bağlıdır. Yine de kullandığınız kontrol nedir? –
Bir veri ızgarası. Bunu yapmaya çalışıyorum ki, scrollviewer pencerenin boyutuna (veya pencerenin kullanılabilir boyutuna göre yeniden boyutlandırılacak, bunun üzerinde başka kontroller de olacak, fakat bu daha büyük olması gereken). datagrid hala çok büyük. scrollviewer'ın sınırların dışına çıkmak için bir araç sağlamasını istiyorum. – Mike
Yeniden boyutlandırılmayan denetimin özel denetiminiz olduğunu varsayalım.
- DockPanel'i bir kapsayıcı olarak kullanın.
- Açık Genişlik ve Yükseklik özelliklerini denetiminizden kaldırın. Eğer VS2008 çalışıyorsanız, tasarımcı bakıldığında minimum boyuta çökerdi kontrol çünkü
, o zaman bu, rahatsızlık neden olur.
İfadeler Karıştırma ve VS2010'dan başlayarak her ikisi de tasarımcı ad alanına saygı duyar, böylece tasarım süresini yalnızca kontrol boyutunu belirtebilirsiniz.
<UserControl ...
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignWidth="WWW" d:DesignHeight="HHH">
....
</UserControl>
d:: DesignWidth ve d: o sizin kontrolünüz aşağıdakileri ekleyin İçin
tasarım zamanı genişliğini ve yüksekliğini belirtmek DesignHeight.
Bir dock paneline koymaya çalıştım. Kontrol panelinin rıhtım panelini doldurmak için genişleyeceği gözüküyor, ancak rıhtımpanelin kendisi pencere ne kadar büyük olursa olsun aynı büyüklükte kalıyor. – Mike
Bu kazayı kazayla düşürdüm. O zaman bunu yaptığımı bile anlamadım. Geri almayı isterdim, ancak cevap düzenlenmedikçe oyumu değiştirmeme izin vermez. – TomDestry
Bu soru eskidir, ama burada bulunduğumdan beri çözümümümü atacağımı düşündüm. Aşağıdaki kod, iki sekmeli bir sekme kontrolü içindir ve her sekme sekmeyi doldurmak için bir kontrol içerir. Açık olarak ayarlanmış genişliği ve yüksekliği kaldırdım ve yeniden boyutlandırmak istediğim tüm denetimlerde yatay ve dikey hizalamaları otomatik olarak ayarladım. Sekme kontrolü ana pencereye uzanır. Sekmelerdeki kontroller sekmeleri doldurmak için uzar. Buradaki bilgiler cevaplardan geldi. Sadece tam bir örnek oluşturdum. Bu kişiye yararlıdır
Umut.
<TabControl HorizontalAlignment="Stretch"
Margin="91,0,0,0" Name="tabControl1"
VerticalAlignment="Stretch" >
<TabItem Header="DataGrid" Name="tabItem1">
<Grid>
<DataGrid AutoGenerateColumns="False"
HorizontalAlignment="Stretch"
Name="dgFTPLog"
VerticalAlignment="Stretch"
Margin="6,6,0,0" />
</Grid>
</TabItem>
<TabItem Header="Log" Name="tabItem2">
<Grid>
<TextBox
HorizontalAlignment="Stretch"
Margin="6,6,0,0" Name="txtLog"
VerticalAlignment="Stretch"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto"
TextChanged="txtLog_TextChanged" />
</Grid>
</TabItem>
</TabControl>
Bu da beni üzdüm neden oldu ve AlexK ışığı görmeme yardımcı oldu. Hile, Yükseklik ve Genişlik ayarlanamaz.Bunları AUTO
olarak ayarlayın ve boyutu ayarlamak için MARGIN
kullanın. HORIZONTALALIGNMENT
ve VERTICALALIGNMENT
öğelerini STRETCH
olarak ayarlayın ve daha sonra bağlantı işlevi çalışır.
Bu da karşılanması için çalışır. Sen benim günümü kurtardın. teşekkürler: D –
Ben de bu konularda rastladı ettik. ve ActualHeight ve ActualWidth özelliklerinin ana denetimine bağlanmayı denemesi, yalnızca bunun dışında XAML tarafından değil, arkasındaki kod aracılığıyla çalışır.
yani
private void parentControl_SizeChanged(object sender, SizeChangedEventArgs e)
{
childControl.Height = parentControl.ActualHeight;
childControl.Width = parentControl.ActualWidth;
}
- 1. MKCircle'ın düzgün yeniden boyutlandırılması
- 2. Bir GLKView'ın yeniden boyutlandırılması
- 3. Bir wxPython Penceresinin yeniden boyutlandırılması
- 4. Görüntülerin org modunda yeniden boyutlandırılması
- 5. Bir mmap dosyasının hızlı yeniden boyutlandırılması
- 6. JFrame'in içeriğe göre otomatik olarak yeniden boyutlandırılması
- 7. JavaFX'te Sahne Alanı'nın yeniden boyutlandırılması olayı nasıl dinlenir?
- 8. VB.NET'teki Resimlerin Boyutlandırılması
- 9. Android'de kontrollerin sekme sırasını nasıl ayarlayabilirim?
- 10. Yeniden Boyutlandırılabilir Paneller Nasıl Yapılır?
- 11. Kontrollerin ölçeklenmesi neden PC'ler arasında farklılık gösteriyor?
- 12. Dinamik olarak yeniden boyutlandırma ve pencere yeniden boyutlandırma ve pencere yüklemesindeki içeriğin yeniden boyutlandırılması
- 13. iPad için HTML5 CSS3'teki görüntülerin otomatik olarak yeniden boyutlandırılması
- 14. Parlak uygulamalarda ggvis grafiklerinin dinamik olarak yeniden boyutlandırılması
- 15. WPF'de Çalıştırma Sırasında Metin Kutusunu Yeniden Boyutlandırma
- 16. MFC Penceresinin Boyutlandırılması
- 17. UIPageViewController tablo yeniden kullanım hücresi gibi yeniden denetleyici nasıl yapılır?
- 18. ToolStrip öğelerini kodda yeniden sıralamak nasıl yapılır?
- 19. Yeniden yapılandırılmış bir metne nasıl yorum yapılır?
- 20. SourceTree'de Çalışma Kopyasını Yeniden Konumlandırma Nasıl Yapılır
- 21. Gerektiğinde yeniden girilebilen girişler nasıl yapılır
- 22. Tarayıcıda yeniden boyutlandırma sayfa başı yükleme
- 23. PyQt_PyObject eşdeğeri?
- 24. sistem özelliklerinin toplanması
- 25. GWT user.agent özelliklerinin ve
- 26. XAML'de d: DesignInstance özelliklerinin nasıl ayarlanacağı?
- 27. ABRecordRef'in tüm özelliklerinin bir listesini nasıl alabilirim?
- 28. SQLite veritabanında otomatik artış sütunu nasıl yeniden verilir?
- 29. NSMethodSignature & NSInvocation eşdeğeri eşdeğeri 2
- 30. SQLITE eşdeğeri?
beind XAML kodunda
<MyParentControl x:name="parentControl" SizeChanged="parentControl_SizeChanged"> <ChildControl x:name=childControl" /> </MyParentControl>
Bize şu anda var XAML kodunu gösterir misiniz? – svick
Sen genişlik/yükseklik = "*" denemek ve/veya kullanabilirsiniz StackPanel – deathrace