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