C# 更改WPF中的UserControl内容
我在wpf中定义了以下UserControl:C# 更改WPF中的UserControl内容,c#,wpf,user-controls,C#,Wpf,User Controls,我在wpf中定义了以下UserControl: <UserControl x:Class="Views.HideShowDetailsView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.o
<UserControl x:Class="Views.HideShowDetailsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d">
<DockPanel Background="#FFFFF2CC" Name="HideShowDetailsPanel">
<Button Name="hidePatientDetails"
Background="Transparent"
Margin="10,10"
Width="40"
BorderBrush="Transparent"
BorderThickness="0"
DockPanel.Dock="Right"
Command="{Binding Path=HideDetailsCommand}" >
<Button.Template>
<ControlTemplate TargetType="Button">
<Image Source="../Resources/ArrowRight.png" />
</ControlTemplate>
</Button.Template>
</Button>
</DockPanel>
</UserControl>
当命令被激活时,我需要通过添加图像画布和另一个按钮来更改它的内容。如何在wpf中实现这一点?您可以通过将两个新控件添加到容器中来实现,例如,UC中的某个地方的
StackPanel
。然后将以下样式指定给堆栈面板:
<Style x:Key="stackStyle" TargetType="StackPanel">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsEnabled, ElementName=hidePatientDetails}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
是否更改UC代码?如有必要,我可以更改UC代码。是否在代码隐藏中执行?是。从背后的代码。我发现了一些带有绑定的代码,但无法为我的示例正确执行。请稍后再试。如果此StackPanel在开始时隐藏,UC是否会收缩且不包括在尺寸测量中?是的,折叠
收缩控件,因为它不在那里Visibility=Hidden
隐藏它,但保留空间。这就是缺少的成分:)非常感谢!