2013-02-26 66 views
0

我將text box綁定到包含位於ViewModel中的數字(正數和負數)的變量。綁定到文本框中的文本調整列的大小

當變量的變化,那就是在text box列的大小,也改變(沒有定義的列的大小)

我怎麼能告訴柱在文字下面沒有改變文本框(完全不清楚爲什麼出現這種情況,如果有人知道我很想得到答案)

一些代碼:

XAML:

<Grid Grid.Row="3" Grid.RowSpan="1" Margin="0" > 
     <Grid.RowDefinitions> 
      <RowDefinition Height="25" /> 
      <RowDefinition Height="25" /> 
      <RowDefinition Height="25" /> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="25" /> 
      <ColumnDefinition /> 
      <ColumnDefinition Width="50" /> 
     </Grid.ColumnDefinitions> 
     SOME ELEMENT 
     <TextBox IsReadOnly="True" Margin="3,2,0,2" Name="xName" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" HorizontalContentAlignment="Right" Text="{Binding VM.SomeProp}"/>//THE PROPBLEM TEXTBOX 
     <TextBlock Grid.Row="2" Grid.Column="2" Margin="3,2" Name="txtblockname" Text="txt" /> 
    </Grid> 

這裏我的道具

private float _someProp; 
    public float SomeProp 
    { 
     get { return _someProp; } 
     set 
     { 
      if (_someProp!= value) 
      { 
       _someProp= value; 
       NotifyPropertyChanged("SomeProp"); 
      } 
     } 
    } 

那麼,問題是當數字爲負,只有它改變大小,爲什麼會這樣呢?

+0

代碼將是有益的,從你的XAML,你也VM綁定 – JMan 2013-02-26 07:25:44

+0

集MinWidth ... – ethicallogics 2013-02-26 07:25:48

+0

@jeroen我編輯的問題 – 2013-02-26 07:33:01

回答

1

您已爲網格列設置寬度。這個尺寸會被尊重,但它的內容仍然可以改變尺寸。

如果你不想讓你的文本框改變大小,你應該設置它的Width屬性。

如果您確實希望它改變大小,但必須保持一定範圍,您可以使用Min- and MaxWidth屬性。

您還可以選擇伸展您的文本框:HorizontalAlignment="Stretch"這將強制它佔用列中的所有空間。

+0

我得到這個問題,它改變大小隻有當它是一個負數時,才非常奇怪 – 2013-02-26 08:30:01

+0

另一件事,沒有任何意義,在左邊移動的列是不變的。它不應該移動。 – 2013-02-26 08:43:50