首先,我告诉你我有什么,比我解释一下我的问题。
我有一个代码,在那里我可以根据属性"布局",它可以是"Layout1"或"Layout2"风格之间切换。
这里是样式定义:<Grid>
<ContentControl Style="{Binding Layout}">
</ContentControl>
</Grid>
{C}每种风格使用的静态ressource"mywindow的"。在mywindow的,类myControl和myControl使用WindowsFormsControl myControl5。
在类myControl,我得到的句柄myControl5,所以我可以用它来添加事件处理程序。
<Style x:Key="myWindow" TargetType="{x:Type ContentControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContentControl}">
<Grid >
<local:myControl Margin="0,0,0,0"
</local:myControl>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type local:myControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:myControl}">
<WindowsFormsHost x:Name="PART_WindowsFormsHost">
<cbh:myControl5></cbh:myControl5>
</WindowsFormsHost>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
{体C3}现在我的问题:
每次式布局的变化,我看到WPF创建一个新的myControl,但从来没有释放它。因此,内存使用率增加每次。
我希望解释是非常有用的,你可以说"Natch,你忘了......"或类似的东西。| Terkosh