C# 使用负值加载WPF样式

C# 使用负值加载WPF样式,c#,wpf,C#,Wpf,我有以下几点意见 <Style x:Key="xPad" TargetType="TextBlock"> <Setter Property="Padding" Value="2,3,-6,3"/> </Style> 我得到一个参数异常,值2,3,-6,3不是System.Windows.Documents.Block.Padding的有效值。原因可能是在计算大小时,填充值导致高度和宽度为负值,并且您可能得到的异常高度和宽度在内部异常中必须为非负值 从这个答案

我有以下几点意见

<Style x:Key="xPad" TargetType="TextBlock">
<Setter Property="Padding" Value="2,3,-6,3"/>
</Style>
我得到一个参数异常,值2,3,-6,3不是System.Windows.Documents.Block.Padding的有效值。

原因可能是在计算大小时,填充值导致高度和宽度为负值,并且您可能得到的异常高度和宽度在内部异常中必须为非负值

从这个答案中: 如果你的窗口比屏幕大,你可能会得到负值,不管是位置还是大小


所以,我猜你的填充值2,3,-6,3左,上,右,下可能导致窗口比屏幕大。因为它在调用get_size时抛出异常,正如我测试的那样,如果您只需将值更改为'2,3,-2,3',它就会工作。

阅读文档并使用边距。我想我的问题是它会加载…Documents.Block.Padding。。。虽然它应该是…Controls.Padding,但我不能使用margin,因为我必须从第三方组件更改复杂的部分动态布局,它可以从XAML工作,但出于某些原因,我必须从代码中执行。我甚至不分配它-我只是尝试加载-它可以从XAML工作-它可以从具有正值的代码中工作
        object o = Application.Current.TryFindResource("xPad");