C# 更改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

我在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.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
隐藏它,但保留空间。这就是缺少的成分:)非常感谢!