Existe alguma maneira de usar StaticResource em uma biblioteca de controle do WPF e ser capaz de exibir em tempo de design?

Eu tenho uma biblioteca de controle do WPF que está sendo adicionada a um aplicativo de formulários do windows. Queremos permitir que os controles sejam localizáveis, no entanto, não tenho certeza de como COMPLETAMENTE conseguir isso sem duplicar o código.Isso é o que estou fazendo agora.

Basicamente, no aplicativo de formulários do windows, antes do início do aplicativo principal, estou instanciando um App.xaml que mora no aplicativo de formulários (contendo meus links para meus recursos que também residem no aplicativo de formulários). Isso funciona perfeitamente para o tempo de execução.

No entanto, meus controles de usuário todos têmContent="{StaticResource SomeVariableName}", que acabam ficando em branco. Eu posso consertar isso tendo um app.xaml e dicionários de recursos apropriados em minha biblioteca de controle que combinam com aqueles em meu aplicativo de formulários do windows. No entanto, isso é código duplicado.

Coisas que eu já tentei de nada:

Instancie o App.xaml que mora na biblioteca de controle de usuários de dentro do meu aplicativo de formulários. Isso não funciona porque os URIs para meus recursos estão procurando um recurso incorporado, não meu dicionário de recursos locais (eu poderia simplesmente copiar os arquivos de recursos do controle para um local apropriado dentro do meu aplicativo de formulários na compilação). Eu poderia alavancarDeferrableContent Aqui? Não há muito online, tanto quanto eu poderia encontrar neste atributo e como ele deve ser usado, no entanto.Eu gostaria de usar post builds para App e dicionários, no entanto, a instanciação App é uma referência estática para um App.xaml compilado, tanto quanto eu posso dizer. Então, App.xaml deve viver dentro do formulário pelo menosEu tentei ter um App.xaml duplicado com uma compilação post movendo o resourcedictionary.xaml. Eu percebi que um app duplicado.xaml é ok, já que é a força motriz e você pode não querer depender de um do controle de qualquer maneira (que circula de volta e faz você se perguntar se deveria ter o App.xaml no controle em all? A menos que você queira permitir um padrão que use recursos incorporados ...) Isso também falhou ao dizer que não foi possível encontrar o recurso, mesmo que ele tenha sido colocado para onde o URI deveria estar apontando. O código descompilado aponta paraUri resourceLocater = new Uri("/WindowsFormsApplication3;component/app.xaml", UriKind.Relative);

Então, existe alguma maneira de permitir que isso funcione e ter tempo de design de visualização dos padrões do componente e evitar a duplicação? Ou a duplicação está OK neste caso? Se o subitem da minha segunda bala parece ok (App.xaml duplicado com recursos de reserva copiados), como faço para não procurar por um item de nível de componente, mas sim um item de nível de arquivo?

Última pergunta (e eu posso postar isso separadamente, se necessário) que eu acabei de prestar atenção. Meu App.xaml está sendo construído no código, de modo que não me permite criar novos ResourceDictionaries imediatamente. Há alguma maneira de fazer isso?

Opção final ... possivelmente a melhor? - Eu planejo usar o código de Andre van Heerwaarde de qualquer maneira, então devo apenas verificar a existência de um arquivo e adicioná-lo como um recurso mesclado on the fly? Basicamente, tem um App.xaml no meu controle de usuário que vincula a um ResourceDictionary incorporado padrão. E, então, o código procura os recursos localizados apropriados, que podem ser caminhos de arquivo relativos? A única desvantagem que vejo aqui é que o padrão não pode ser alterado na hora ... o que eu provavelmente poderia até ter essa aparência em um local especificado (usando algum tipo de convenção) e ter esse preferido sobre o built-in um?

Ah, e meu motivo para não querer recursos incorporados é para que os usuários finais possam adicionar / modificar novos recursos localizados após a implantação ser implantada.

Eu posso adicionar código se isso ajudar você a visualizar isso melhor, é só me avisar.

ATUALIZAR

Eu estou agora correndo em um outro problema com o estilo e não apenas localizando.

Aqui está um exemplo de um dos botões internos em um dos controles:

<code><Button Style="{StaticResource GrayButton}"
</code>

Mais algumas coisas que eu tentei / pensei:

Eu não posso criar um app.xaml (que nunca seria usado) com o ResourceDictionary configurado como ApplicationDefinitions não são permitidos em projetos de biblioteca. Eu poderia incorporar isso nos recursos do controle, mas isso sempre teria precedência sobre os recursos no nível do aplicativo e eu perderia a personalização.

Aqui está um caso de conexão que realmente soa como o que eu estou procurando, no entanto, não fornece qualquer solução real para este

A solução (além do topo .. que não funciona) que eu posso pensar que pode funcionar (e ainda não tentei) também parece muito trabalho para algo que eu acho que deveria ser simples. Mas, eu poderia ser capaz de criar algumas propriedades de dependência no controle que eu posso ligar e, em seguida, permitir que eles sejam anulados pelo projeto que estará usando o controle. Como eu disse, parece muito trabalho para um simples pedido :). Isso funcionaria? E mais importante, existe uma solução melhor e mais simples que estou perdendo?

questionAnswers(3)

yourAnswerToTheQuestion