使用负值加载WPF样式

时间:2015-05-25 22:36:56

标签: c# wpf

我有以下Stlye

<Style x:Key="xPad" TargetType="TextBlock">
<Setter Property="Padding" Value="2,3,-6,3"/>
</Style>

如果我在XAML中使用此样式,它将按预期工作。 但是当我尝试在代码中加载它时:

        object o = Application.Current.TryFindResource("xPad");

我得到一个参数异常,值2,3,-6,3不是System.Windows.Documents.Block.Padding的有效值。

1 个答案:

答案 0 :(得分:0)

原因可能是您的Padding值在计算尺寸时导致负高度和宽度,并且您可能会在内部获得异常高度和宽度必须为非负例外

Padding

从这个stackoverflow回答: 事实证明,如果您的窗口大于您的屏幕,您可能会获得负值,无论是位置还是大小。

所以,我猜你的填充值2,3,-6,3(左,上,右,下)可能导致窗口大于屏幕大小。因为它在调用get_size时抛出异常,并且在我测试时,如果你只是将值改为`2,3,-2,3',它就可以工作。