2010-10-06 60 views
0

這是我當前的XAML。WPF:展開驗證矩形

<StackPanel Orientation="Horizontal" Grid.Column="3" Grid.Row="1"> 
    <Label Content="Allocated:" FontSize="14"/> 
    <Label Content="{Binding AllocatedUnits, Mode=OneWay, ValidatesOnDataErrors=True}" ContentStringFormat="N0" FontSize="14"/> 
</StackPanel> 

我該如何改變這一點,以便紅色驗證矩形圍繞整個文本而不僅僅是數字。 (我會接受完全丟掉堆棧面板並執行其他操作。

回答

2

在這種情況下,字符串格式綁定可能會訣竅,但這在.NET 3.0中不可用(如果您還在)如果你可以使用它,你只需要一個標籤控件(這樣你就可以將其他標籤與堆疊面板相交叉,並且你的驗證邊框將包裝剩餘標籤中的所有文本) 。

編輯:每喬納森的評論的,看來你需要兩個屬性做到這一點的內容控制...

使用類似這樣您綁定:

Content="{Binding AllocatedUnits, ValidatesOnDataErrors=true}" ContentStringFormat="Allocated: {0}" 

MSDN文檔here

+0

由於它是標籤,因此必須使用ContentStringFormat而不是StringFormat。除此之外,它效果很好。 – 2010-10-06 23:52:30

+0

謝謝喬納森 - 我已經改變了我的答案。 – 2010-10-07 08:25:08

+0

哦,不,ContentStringFormat不是Binding上的一個屬性。 (這樣做太有道理了。)相反,它是標籤本身的屬性。 – 2010-10-07 16:49:56