4

VSTO Office Excel アドインを Windows インストーラーで展開したいと考えています。インストーラーを作成し、Virtual PC にアドインをインストールしてテストしました。スタイルが機能しないという問題がありますが、Visual Studioでデバッグまたは実行すると機能します。

たとえば、次のようなスタイルを作成しました。

<Style TargetType="{x:Type Button}">
     <Style.Setters>
        <Setter Property="Background" Value="Snow" />
        <Setter Property="Width" Value="50" />
        <Setter Property="Height" Value="25" />
        <Setter Property="Margin" Value="5" />
     </Style.Setters>
</Style>

ここで、ResourceDictionary (スタイルを含む) を Window の ResourceDictionary とマージします。

<Window.Resources>
      <ResourceDictionary>
         <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/assembly;component/UI/Resources/Style.xaml" />
         </ResourceDictionary.MergedDictionaries>
      </ResourceDictionary>
</Window.Resources>

スタイルにキーを使用し、スタイルをコントロールに直接設定すると、セットアップ後にのみ機能します。


これは、スタイル (Styles.xaml) を含む ResourceDictionary です。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<Style TargetType="{x:Type Button}">
     <Style.Setters>
        <Setter Property="Background" Value="Snow" />
        <Setter Property="Width" Value="50" />
        <Setter Property="Height" Value="25" />
        <Setter Property="Margin" Value="5" />
     </Style.Setters>
</Style>

</ResourceDictionary>

そして、ここに「マージ」-ResourceDictionary があります。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="/ExcelAddIn;component/UI/Resources/Style/Brushes.xaml" />
      <ResourceDictionary Source="/ExcelAddIn;component/UI/Resources/Style/ControlTemplates.xaml" />
      <ResourceDictionary Source="/ExcelAddIn;component/UI/Resources/Style/Styles.xaml" />
      <ResourceDictionary Source="/ExcelAddIn;component/UI/Resources/Style/DataTemplates.xaml" />
   </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

ResourceDictionary を Window-Resources にマージするために、次を使用しようとしました。

これらはVisual Studioでデバッグ/実行すると機能しますが、セットアップ後は機能しません:

<ResourceDictionary Source="/ExcelAddIn;component/UI/Resources/Style/Skin.xaml" />

<ResourceDictionary Source="pack://application:,,,/ExcelAddIn;component/UI/Resources/Style/Skin.xaml" />

<ResourceDictionary Source="pack://application:,,,/ExcelAddIn;v1.0.0.0;component/UI/Resources/Style/Skin.xaml" />

これらは一般的に機能していません:

<ResourceDictionary Source="pack://application:,,,/UI/Resources/Style/Skin.xaml" />

<ResourceDictionary Source="/UI/Resources/Style/Skin.xaml" />
4

1 に答える 1

2

SourceプロパティのURIが問題だと思います。パックURIを使用してみてください

于 2012-10-31T14:43:02.787 に答える