리본 바가 내가 찾은 최고의 경로 였지만 시작부터 끝까지 완료하는 프로젝트에 훌륭한 방법을 찾는 데 어려움이 있었기 때문에 여기서 작은 글을 쓸 것입니다.
버튼 이미지를 포함하여 기존 메일 메시지에 대해서만 리본에 버튼을 추가하려면.
사용 VS 2010 새 프로젝트, Office에서 "Outlook 2007 추가 기능"을 선택하고 프로젝트 이름을 입력하십시오. 새롭게 생성 된 프로젝트에 원하는 "리본 (XML)"새 이름을 추가합니다. 원하는 이름으로 CustomRibbon을 호출합니다. 새로 만든 CustomRibbon.xml 파일을 열고 탭 노드를 다음과 같이 변경하십시오.
<tab idMso="TabReadMessage">
<group insertBeforeMso="GroupActions" id="CustomGroup" label="GroupNameThatShowsInOutlook">
<button id="btnCustomButton"
label = "Text For The Custom Button"
supertip="tip for the button hover"
onAction ="ButtonClicked"
size="large"
getImage="GetCustomButtonImage" />
</group>
</tab>
다음은 CustomRibbon.cs 파일에 대한 두 가지 콜백 함수 인 GetCustomButtonImage와 다른 ButtonClicked가 있습니다.
개방 CustomRibbon.cs는
public stdole.IPictureDisp GetCustomButtonImage(Office.IRibbonControl control)
{
System.Drawing.Image myImage;
myImage = OutlookAddIn.Properties.Resources.ImageName;
return AxHostConverter.ImageToPictureDisp(myImage);
}
이 다음이 표시됩니다 같은 섹션에 다음을 추가 또한
public void ButtonClicked(Office.IRibbonControl Control)
{
//Do work here
}
에 따라 추가 리본 콜백 지역에서,이를 채우기 위해 클래스가 누락 되었다면 곧 살펴볼 것이지만, 먼저 우리가 필요로하는 마지막 부분에 CustomRibbon.cs를 추가 할 것입니다. IRibbonExtensibility 회원 지역에서 GetCustomUI에서 System.Windows.Forms를 사용하여 상단
이 추가 추가 AxHostConverter가 호출
public string GetCustomUI(string ribbonID)
{
if (ribbonID == "Microsoft.Outlook.Mail.Read")
{
return GetResourceText("OutlookAddIn.CustomRibbon.xml");
}
else
{
return "";
}
}
이 프로젝트에 새 클래스를 추가 기존 코드를 변경; using System.Drawing;
그런 다음 프로젝트로 버튼 이미지를 추가 다음 코드
class AxHostConverter : AxHost
{
private AxHostConverter() : base("") { }
static public stdole.IPictureDisp ImageToPictureDisp(Image image)
{
return (stdole.IPictureDisp)GetIPictureDispFromPicture(image);
}
static public Image PictureDispToImage(stdole.IPictureDisp pictureDisp)
{
return GetPictureFromIPicture(pictureDisp);
}
}
을 가지고 클래스를 변경하고 해당 자원을 사용하도록 GetCustomButtonImage 기능을 변경합니다. 나는 PNG를 사용했고 투명성이 잘 보이는 행운을 보았습니다.
그리고는 마지막으로 남아 있어야하는 모든 ThisAddIn.cs
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
return new CustomRibbon();
}
당신은 buttonClicked하고자하고 있고이 설정되어 어떤 코드를 추가하려면 다음과 같은 추가하는 것입니다.
Clickonce를 사용한 배포와 설치는 매우 간단합니다.