Wenn ich ein UserControl in WPF erstelle, finde ich es bequem, es einige beliebige Höhe und Breite Werte zu geben, so dass ich meine Änderungen im Visual Studio Designer sehen kann. Wenn ich die Kontrolle laufen, möchte ich jedoch die Höhe und Breite nicht definiert sein, so dass die Steuerung erweitern zu füllen, was Behälter ich es an seinem Platz. Wie kann ich diese gleiche Funktionalität acheive, ohne die Werte Höhe und Breite zu entfernen, bevor meine Kontrolle aufbauen? (. Oder ohne DockPanel in den übergeordneten Container mit)WPF UserControl Design Zeit Größe
Der folgende Code demonstriert das Problem:
<Window x:Class="ExampleApplication3.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:loc="clr-namespace:ExampleApplication3"
Title="Example" Height="600" Width="600">
<Grid Background="LightGray">
<loc:UserControl1 />
</Grid>
</Window>
Die folgende Definition von UserControl1
Displays angemessen zur Entwurfszeit wird jedoch als eine feste Größe zur Laufzeit:
<UserControl x:Class="ExampleApplication3.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300">
<Grid Background="LightCyan" />
</UserControl>
die folgende Definition von UserControl1
Displays als Punkt zur Design-Zeit, sondern erweitert die Eltern Window1
zur Laufzeit zu füllen:
<UserControl x:Class="ExampleApplication3.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid Background="LightCyan" />
</UserControl>
Kann dies in umgekehrter Weise getan werden? Das heißt, kann ich die Benutzersteuerung XAML Höhe/Breite undefiniert lassen und dann eine Höhe und width im Konstruktor NUR wenn LicenseManager.UsageMode == LicenseUsageMode.Designtime? –
@Patrick: Scheinbar nicht. Das heißt, es funktioniert nicht für mich. – Thomas
Leider enthält LicenseUsageMode keine Designtime. – jonatr