You are probably missing setting the ISimpleFillSymbol to the IFillShapeElement.Symbol.
private void PerformTest4()
{
IActiveView activeView = ArcMap.Document.ActiveView;
if (activeView is IPageLayout)
{
IRgbColor rgbColor = new RgbColorClass();
// Fill, red
ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbolClass();
rgbColor.Red = 255;
rgbColor.Green = 0;
rgbColor.Blue = 0;
simpleFillSymbol.Color = rgbColor;
// Outline, black, set outline to fill
ISimpleLineSymbol outline = new SimpleLineSymbolClass();
rgbColor.Red = 0;
rgbColor.Green = 0;
rgbColor.Blue = 0;
outline.Color = rgbColor;
outline.Width = 1.5;
outline.Style = esriSimpleLineStyle.esriSLSSolid;
simpleFillSymbol.Outline = outline;
// Set the element's symbol
IFillShapeElement fillShapeElement = new RectangleElementClass();
fillShapeElement.Symbol = simpleFillSymbol;
IElement element = fillShapeElement as IElement;
// Set the size of the element to 5 x 2 in display units (ie. inches),
// located in lower-left corner of page
IEnvelope envelope = new EnvelopeClass();
envelope.PutCoords(0, 0, 5, 2);
element.Geometry = envelope;
// Add the text box to the layout
IGraphicsContainer graphicsContainer = ArcMap.Document.PageLayout as IGraphicsContainer;
graphicsContainer.AddElement(element, 0);
activeView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
}
}