2017-04-04 2 views
-1

Ich versuche, einen Rahmen zu TextBlock hinzuzufügen, indem ich ihn in den Border-Block einpacke. Aber das bewegt TextBlock zu einem anderen Fensterstandort. Das gleiche passiert , wenn der TextBlock in ein Raster gewickelt ist.TextBlock-Rahmen bewirkt, dass TextBlock an einen anderen Ort verschoben wird

<Border BorderBrush="#FF0B232F" BorderThickness="2" > 
<TextBlock 
     Background="#FFCDCD5A" 
     Grid.Column="4" 
     Grid.Row="2" 
     TextWrapping="Wrap" 
     Width="214.8" 
     Height="261.4" > 
</Border> 

UPDATE

Das Problem bei diesem TextBlock- Es mehrere Startreihen überspannt hat.

Zuerst tat ich wie vorgeschlagen Daniel Marques. Ich musste auch zu Border-Definition diese hinzufügen: HorizontalAlignment = "Right" VerticalAlignment = "Bottom" und Grid.RowSpan.

Auch ich musste den TextBlock Rand löschen.

Antwort

2

Das ist, weil, wenn Sie Ihren TextBlock zwischen den Markups platzieren, Sie tatsächlich sagen, dass der TextBlock das "Kind" des Randes ist. Dies bedeutet, dass der TextBlock von der Umrandung umschlossen wird. Es ist also logisch anzunehmen, dass der TextBlock dem Border "folgen" wird. Es wird "innerhalb" der Grenze angezeigt, wo immer sich die Grenze befindet.

Sie müssen den Speicherort der Grenze anstelle des Textblock setzen, dafür zu erscheinen, wo Sie es möchten:

<Border Grid.Column="4" Grid.Row="2" BorderBrush="#FF0B232F" BorderThickness="2" > 
<TextBlock 
    Background="#FFCDCD5A" 
    TextWrapping="Wrap" 
    Width="214.8" 
    Height="261.4" /> 
</Border> 
+0

nicht für mich arbeiten wahrscheinlich, weil mein TextBlock- mehrere Startreihen umfasst. Ich habe den Rasterzeilenbereich angegeben, aber das Ergebnis ist gleich. – LetzerWille

+0

Sie möchten, dass sich Ihr Textblock über mehrere Zeilen erstreckt und nicht funktioniert? Erneut müssen Sie den Grid.RowSpan des Borders festlegen, der das Eltern des TextBlocks und nicht des TextBlocks ist. –

Verwandte Themen