Шаблон корневого контроля - PullRequest
0 голосов
/ 21 июля 2010

У меня есть пользовательский элемент управления с именем Frame (открытый класс Frame: ContentControl, IDisposable). Рамка в конструкторе определяет DefaultStyleKey = typeof (Frame); Шаблон Frame находится в ресурсе Generic.xaml. Теперь в каком-то другом проекте я использую фрейм, который находится в Silverlight.Controls, и если я устанавливаю свою главную страницу, то корневым элементом является фрейм, как это

<ShellFrame:Frame x:Class="Modules.Adresar.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:s="clr-namespace:Modules.Adresar.ViewModel"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ShellFrame="clr-namespace:Silverlight.Controls;assembly=Silverlight.Controls" mc:Ignorable="d"
DataContext="{Binding Source={StaticResource VMLocator}, Converter={StaticResource VMIndexerConverter}, ConverterParameter=AdresarVM}"
              d:DataContext="{d:DesignInstance IsDesignTimeCreatable=True, Type=s:AdresarViewModel}" x:Name="MainFrame">

<Grid x:Name="LayoutMain">


</Grid>

Я не могу редактировать шаблон фрейма. Смесь показывает, что все пункты меню редактирования шаблона отключены. Но если я помещу рамку в корневую сетку макета в обычном пользовательском контроле, тогда все в порядке .. как это

<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ShellFrame="clr-namespace:Silverlight.Controls;assembly=Silverlight.Controls"
mc:Ignorable="d"
x:Class="Adresar.Test"
d:DesignWidth="640" d:DesignHeight="480">

<Grid x:Name="LayoutRoot">
    <ShellFrame:Frame Content="Frame" HorizontalAlignment="Left" Margin="72,136,0,0" VerticalAlignment="Top"/>
</Grid>

Кто-нибудь знает, почему это происходит? Спасибо!

1 Ответ

0 голосов
/ 21 июля 2010

Изменение элемента управления Frame на UserControl вместо ContentControl должно исправить поведение, которое вы видите в Blend. Я не уверен, как вы используете свой элемент управления, но если вы не можете использовать UserControl, вы можете включить некоторый контекст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...