在运行时更改自动宽度

时间:2017-01-24 16:04:30

标签: c# wpf xaml

我有一个XAML / WPF自定义控件,用于显示项目列表。我最初将此控件宽度设置为自动,因为我希望它重新调整为添加到其中的最宽项目的宽度。

<custom:MyCustomControl ThemeName="MyDefaultTHeme" 
                        x:Name="PART_MyItems" 
                        Height="Auto" 
                        Width="Auto"/>

但是,在运行时,用户可以更改我的自定义控件的ControlTemplate(ThemeName),它会更改项目的外观(图标和文本大小等)。然后,控件将根据项目的宽度更改其宽度,有时可以填满整个屏幕宽度。这是我不想要的。

如何在第一次使用后关闭Width="Auto"(第一次加载控件)或将宽度设置为初始宽度而不再更改它&gt;

1 个答案:

答案 0 :(得分:2)

在更改主题之前,只需调用MyCustomControl.Width = MyCustomControl.ActualWidth,因为您可能有C#代码进行主题切换。这将摆脱汽车。