Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式在我的页面中移动按钮/文本框位置_C#_Silverlight_Xaml - Fatal编程技术网

C# 以编程方式在我的页面中移动按钮/文本框位置

C# 以编程方式在我的页面中移动按钮/文本框位置,c#,silverlight,xaml,C#,Silverlight,Xaml,我在我的xaml代码,2扩展器中加入了一个边框。 在每个扩展器中,我都有一个网格 在网格中,我得到了按钮或文本框之类的元素 如果当前用户是register,我想在扩展器1中放置一个按钮,如果用户不是register,则在扩展器2中放置一个按钮 只复制一个扩展器,因为它们完全相似 <Border CornerRadius="0,0,10,10"> <Border.Background> <LinearGradientBrush EndPoint

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

在网格中,我得到了按钮或文本框之类的元素

如果当前用户是register,我想在扩展器1中放置一个按钮,如果用户不是register,则在扩展器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>

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


谢谢。

请给出完整的答案(不仅仅是评论):


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

例如:

<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来说可能更干净。

您可以使用所有按钮/文本框,只显示必须显示的对象,属性
可见性
意味着我必须使用双按钮,并对该按钮使用代码隐藏方法。没有其他方法吗?不是双重代码隐藏,因为每个组件都链接到同一个方法。@Zaphod还有其他方法,但在我看来,Xaruth向您推荐了最简单的方法。那么,为什么要无缘无故地把事情弄得更复杂呢?@Xaruth,谢谢你。这是可行的,我想我必须在后面加倍编码,但是不行。这非常好,而且非常简单。谢谢Xaruth。