0

我在我的 xaml 代码中有 2 个扩展器进入边框。在每个扩展器中,我都有一个网格。

在网格中,我得到了按钮或文本框等元素。

如果当前用户已注册,我想在扩展器一中放置一个按钮,如果用户未注册,我想在扩展器二中放置一个按钮。

只复制一个扩展器,因为它们完全相似。

<Border CornerRadius="0,0,10,10">
    <Border.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FFFBFBFB" Offset="0"/>
            <GradientStop Color="#FFE5E5E5" Offset="1"/>
        </LinearGradientBrush>
    </Border.Background>
    <Border.Effect>
        <DropShadowEffect Opacity="0.5" />
    </Border.Effect>

    <toolkit:Expander Height="auto" 
                      Width="auto"
                      Foreground="#FF100B49" 
                      IsExpanded="False" 
                      Name="expOne">
        <toolkit:Expander.HeaderTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal" >
                    <TextBlock Foreground="Orange"
                               FontSize="16" 
                               Text="Common informations" />
                </StackPanel>
            </DataTemplate>
        </toolkit:Expander.HeaderTemplate>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions  >
                <RowDefinition Height="Auto" MinHeight="20" />
                <RowDefinition Height="Auto" MinHeight="20"/>
            </Grid.RowDefinitions>
            <Grid Grid.Row="0" Grid.Column="0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" MinHeight="20" />
                    <RowDefinition Height="Auto" MinHeight="20"/>
                </Grid.RowDefinitions>
                <TextBlock Text="Title"
                           Width="120"
                           TextWrapping="Wrap"
                           Grid.Row="2"
                           Margin="0,5,0,0"
                           Grid.Column="0"/>
            </Grid>
        </Grid>
    </toolkit:Expander>
</Border>

我可以以编程方式将按钮移动到另一个扩展器/边框中吗?

谢谢你。

4

1 回答 1

1

只是为了做出完整的答案(而不仅仅是评论):

您可以使用所有按钮/文本框,并仅显示必须显示的对象,具有属性Visibility。每个组件都可以链接相同的操作方法。

举个例子 :

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <CheckBox Grid.Row="0" IsChecked="{Binding IsChecked}" />
    <Button Grid.Row="1" Click="Button_Click" Visibility="{Binding FirstVisible, Converter={StaticResource BooleanToVisibilityConverter}, Mode=OneWay}" />
    <Button Grid.Row="2" Click="Button_Click" Visibility="{Binding SecondVisible, Converter={StaticResource BooleanToVisibilityConverter}, Mode=OneWay}" />
</Grid>

这是最简单的方法,并且可能更适合您的 xaml。

于 2013-10-10T09:55:16.263 回答