2008-10-29 20 views
7

Dies soll ein Klacks sein, aber ich kann es immer noch nicht herausfinden.Größe-zu-Inhalt-Layout-Problem in WPF

In meinem Beispiel-App gibt es eine Taste und ein Textbox in einem DockPanel. Wenn der Inhalt der Textbox kleiner als der Inhalt der Textbox ist, ist das Fenster so groß, wie es sein muss, um den Inhalt der Schaltfläche anzuzeigen. Das ist, was ich will. Aber wenn ich mehr Text in den Textkasten bringe, wird das Fenster breiter :-(

Das Verhalten, das ich will, ist, dass das Fenster die Breite entsprechend dem Knopfinhalt erhält und das Textfeld seinen Inhalt umschließt (und/und Scrollbalken wenn . erforderlich)

Danke

Einige Codebeispiel:

<Window x:Class="SO1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" SizeToContent="Width" FontSize="20"> 
    <DockPanel> 
     <Button DockPanel.Dock="Top">A rather long text</Button> 
     <TextBlock TextWrapping="Wrap">Short text</TextBlock> 
    </DockPanel> 
</Window> 

Antwort

7

es versucht zu haben, so scheint es, dass die Bindung der TextBlock ‚s MaxWidth auf die ActualWidth der Button erreicht den Effekt, den Sie suchen:

<Button x:Name="btn" DockPanel.Dock="Top">Short text</Button> 
<TextBlock TextWrapping="Wrap" 
    MaxWidth="{Binding ElementName=btn,Path=ActualWidth}">A rather long text</TextBlock>