我有一个用户控件。 UserControl具有一些功能。我在公共资源目录文件中调用了此usercontrol。我在所有页面中继承此资源目录页面。这使我的用户可以控制所有页面。我想要的是,我希望这个usercontrol用于我可以设置的某个特定页面。这是我的代码。
资源目录文件:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:UserControls">
<!-- Navigation AppBar -->
<l:NavigationAppBarUserControl
Grid.Row="1" Grid.Column="0" Width="100"
HorizontalAlignment="Left" Visibility="Visible" />
</ResourceDictionary>
Window1.xaml:
<src:WindowBase x:Class=""
xmlns:src="clr-namespace:ProjectOne"
Title="Window1">
<Grid>
//some functions...
</Grid>
</src:WindowBase>
这将启用我的用户控件。但是这个页面,我想要隐藏我的用户控件。但是没有删除(src:WindowBase)..我怎么能在这里隐藏UserControl?任何帮助都会得到满足。提前谢谢..
答案 0 :(得分:1)
在WindowBase类中创建一个Visibility类型的属性,并将UserControl的Visisbility绑定到它。
WindowBase
public class WindowBase : Window
{
public WindowBase(Visibility ucVisibility)
{
UCVisibility = ucVisibility;
}
public WindowBase() : this(Visibility.Visible) { }
public Visibility UCVisibility { get; set; }
//other stuff
}
UC绑定
<l:NavigationAppBarUserControl
Grid.Row="1" Grid.Column="0" Width="100"
HorizontalAlignment="Left"
Visibility="{Binding UCVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" />
现在你不希望它在基础构造函数中显示发送Visibility.Collapsed。
public partial class Window3 : WindowBase
{
public Window3():base(Visibility.Collapsed)
{
InitializeComponent();
}
}
我希望这会有所帮助。