我正在为一个应用程序创建一个映射,我需要用两种不同的方式来表示。一个迷你地图和一个常规地图,它们都由一个
UserControl
. 我的问题是,我试图找到一种平滑的方式来显示带有区域名称的常规大小的地图,以及没有区域名称的迷你地图。我一直在调查
DependencyProperties
作为一种可能的方式,或者至少是一种方式来说明我的思路。到目前为止,我得到的是这个。
public bool MiniMap
{
get { return (bool)GetValue(MiniMapProperty); }
set { SetValue(MiniMapProperty, value); }
}
public static DependencyProperty MiniMapProperty =
DependencyProperty.Register("MiniMap",
typeof(bool),
typeof(myMap),
new PropertyMetadata());
然后,我在UserControl中拥有所有具有正确标签的TextBlock,并且当前正在尝试删除Text属性(如果MiniMap属性设置为true),如果为false,则顺其自然。目前我只是在地图的标题上做这件事,但一旦我把这件事做好,我就可以把它们全部循环一遍。
if (MiniMap == true)
{
this.Title.Text = "";
}
然后,我在另一个视图中实例化了这个UserControl两次,其中MiniMap属性在一种情况下设置为true,在另一种情况下设置为false。
<map:myMap x:Name="myMap" Visibility="Collapsed" MiniMap="False"/>
<map:myMap x:Name="miniMap" Visibility="Visible" MiniMap="True"/>
这里的想法是,一旦你点击地图按钮,大地图就会出现(改变
Visibility
到
Visible
)由于在本例中,MiniMap属性设置为false,因此TextBlock应该为空,或者最好删除,但这是另一个问题。我这里的问题是,无论我做什么,我的两个例子
用户控制
对于
MiniMap
属性,因此我只能在两种情况下都打开或关闭TextBlock。有谁知道我该如何让它工作,或者有其他更适合我的问题的解决方案吗?