我试图使用ViewBox来调整不同控件的字体大小,而不是控件大小本身。问题是每当我放置像TextBox或ComboBox这样的控件时,它会正确调整字体大小,但控件不会拉伸。我知道这与“无限”有关。 ViewBox可以使用的空间量。
我尝试了一种不同的方法,在ViewBox中有TextBlock,并将另一个控件fontsize绑定到该TextBlock。
<Grid Width=100>
<ViewBox>
<TextBlock Name=aTextBlock />
</ViewBox>
</Grid>
...
<Grid>
<TextBlock FontSize={Binding ElementName=aTextBlock, Path=FontSize}/>
</Grid>
这种方法不起作用。如果我可以绑定到ActualFontSize但不存在那将是很好的。
最后一种方法是使用ViewModelBase将aTextBlock
的FontSize绑定到一个变量,并将另一个文本块绑定到该字体。
private double _currentFontSize;
public double GlobalFontSize
{
get { return _currentFontSize; }
set
{
_currentFontSize = value;
MessageBox.Show(_currentFontSize.ToString());
RaisePropertyChanged();
}
}
注意:我尝试为此类使用int,double和FontSize类型。
<Grid Width=100>
<ViewBox>
<TextBlock Name=aTextBlock
FontSize={Binding GlobalFontSize,
UpdateSourceTrigger=PropertyChanged,
Mode=TwoWay} />
</ViewBox>
</Grid>
...
<Grid>
<TextBlock FontSize={Binding GlobalFontSize}>
</Grid>
这也不起作用。我开始觉得ViewBox比它的价值更麻烦。如果我不正确地做这些,或者如果有人有任何建议,我会非常感激。