Einstellung SizeToContent
-WidthAndHeight
funktionieren sollte. Beachten Sie, dass die SizeToContent
Eigenschaft automatisch auf Manual
gesetzt, wenn ein Benutzer das Fenster passt die Größe von der Größe ändern Griff oder über den Rand ziehen aber so haben Sie wahrscheinlich auch die ResizeMode
Eigenschaft auf NoResize
festlegen möchten.
Bitte beachten Sie den folgenden Beispielcode, der die Content
Eigenschaft der ContentPresenter
zu einem 500x300 Rechteck nach 3 Sekunden setzt:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="MainWindow"
SizeToContent="WidthAndHeight"
ResizeMode="NoResize">
<Grid>
<ContentPresenter x:Name="cc" Focusable="true" Margin="0">
<ContentPresenter.Content>
<TextBlock>test</TextBlock>
</ContentPresenter.Content>
</ContentPresenter>
</Grid>
</Window>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Loaded += async (s, e) =>
{
await Task.Delay(3000);
cc.Content = new Rectangle { Width = 500, Height = 300, Fill = Brushes.Red };
};
}
}
Die Größe des Fensters dann erhöht wird, ebenso wie erwartet.
Danke für Ihre Antwort. Ich habe es versucht, aber es hat nicht funktioniert. – Progstar
Dann machst du offensichtlich etwas falsch, weil es Wunder für mich bewirkt. Was bedeutet "nicht funktionieren" eigentlich? – mm8
Offenbar ist das Fenster wie leerer Inhalt geöffnet (wie Fensterbreite und -höhe gleich 0). Aber Inhalt ist da sicher. – Progstar