カスタム ユーザー コントロールに特定の名前空間をインポートしようとすると、このエラーが発生します。このエラーの原因となっている行はインポートです: 'xmlns:c="clr-namespace:Wifi.Toolbar'. この行を削除すると、エラーは消えます。
WifiCollaborateToolbarView.xaml(1,1): エラー MC3000: 'ルート レベルのデータが無効です。行 1、位置 1。XML が無効です。
Windows 7
ビジュアル スタジオ 2010 SP1
.NET 4.0
XAML ファイルは次のとおりです。
<UserControl x:Class="Wifi.Toolbar.WifiCollaborateToolbarView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:c="clr-namespace:Wifi.Toolbar">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="CollaborateStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<Grid x:Name="GridTopLevel" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<c:CollaborateButton x:Name="ButtonName"
Grid.Column="0"
Style="{StaticResource MpCollaborateButtonStyle}"/>
</Grid>
</UserControl>
これが、このファイルにインポートしようとしているクラスです。XAML ファイルと同じアセンブリに存在します。
using System;
using System.Windows;
using System.Windows.Controls;
namespace Wifi.Toolbar
{
[TemplatePart(Name="PART_Icon", Type=typeof(Image))]
[TemplatePart(Name="PART_Caption", Type=typeof(TextBlock))]
public class CollaborateButton : Button
{
private Image part_icon;
private TextBlock part_caption;
public CollaborateButton()
{
}
public override void OnApplyTemplate()
{
...
}
protected override Size MeasureOverride(Size availableSize)
{
...
}
protected override Size ArrangeOverride(Size finalSize)
{
...
}
}
}
ボタン テンプレート
<Style x:Key="MpCollaborateButtonStyle" TargetType="{x:Type c:CollaborateButton}">
<Setter Property="Height" Value="24" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="{StaticResource MpCollaborateButtonNormalStrokeBrush}" />
<Setter Property="Background" Value="{StaticResource MpButtonNormalFillBrush}" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="Bd"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
MinWidth="{TemplateBinding MinWidth}"
Height="{TemplateBinding Height}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}">
<Grid Margin="6,0,12,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image x:Name="PART_Icon"
Grid.Column="0"
Margin="0,0,7,0"
Width="16"
Height="16"
Source="Images/Collaboration_MeetingName_16x16.png" />
<TextBlock x:Name="PART_Caption"
Grid.Column="2"
Text="This is some really long text that is only for testing purposes. Isn't this fun?"
Style="{StaticResource MpCollaborateTextBlock}"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource MpButtonDownFillBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>