我有X个图像(所有相同的高度和宽度),我想在网页上显示它们.但我想让页面在调整浏览器大小时自动显示一行中的最大图像数量(不调整图像大小),并将图像显示为固定距离.
此外,图像应在页面中央组合在一起,并一个接一个地显示.
例如,当浏览器窗口宽度足以在一行上显示3个图像时,它们应显示如下.
每行3个图像以固定的距离分组在一起,在页面的中心,一个接一个.

如果浏览器变得更宽,那么可以在一行上显示4个图像,它们应该像这样显示.
每行4个图像(不调整图像大小),在页面中心一个接一个地分开固定距离.

到目前为止,我已经编写了以下代码:
HTML
<div class="outer-div">
<div class="inner-div">
<div class="image-div"><img src="images/1.png"></div>
<div class="image-div"><img src="images/2.png"></div>
<div class="image-div"><img src="images/3.png"></div>
<div class="image-div"><img src="images/4.png"></div>
<div class="image-div"><img src="images/5.png"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
img {
height: 200px;
width: 200px;
padding: 10px;
}
.image-div {
display: inline;
}
.outer-div {
text-align: center;
width: 100%;
}
.inner-div {
text-align: left;
display: inline;
}
Run Code Online (Sandbox Code Playgroud)
因此,图像以div(inner-div)内部的10px填充内联显示,然后在outer-div内居中.并且图像在内部div内部与文本对齐.
但问题是它们显示如下:
有人可以告诉我如何显示像第一组图像的图像?
即每行的最大图像数(不调整图像大小),一个接一个地在页面中心组合在一起,固定距离(包裹).
我正在使用xUnit,SubSpec和FakeItEasy进行单元测试.到目前为止,我已经创建了一些积极的单元测试,如下所示:
"Given a Options presenter"
.Context(() =>
presenter = new OptionsPresenter(view,
A<IOptionsModel>.Ignored,
service));
"with the Initialize method called to retrieve the option values"
.Do(() =>
presenter.Initialize());
"expect the view not to be null"
.Observation(() =>
Assert.NotNull(view));
"expect the view AutoSave property to be true"
.Observation(() => Assert.True(view.AutoSave));
Run Code Online (Sandbox Code Playgroud)
但是现在我想写一些负面单元测试并检查某些方法是否被调用,并抛出异常
例如
"Given a Options presenter"
.Context(() =>
presenter = new OptionsPresenter(view,
A<IOptionsModel>.Ignored,
service));
"with the Save method called to save the option values"
.Do(() =>
presenter.Save());
"expect an ValidationException to be thrown" …Run Code Online (Sandbox Code Playgroud) 在Log4Net配置示例网页上,它显示了如何设置SmtpAppender的示例.
所以我将以下设置添加到我的app.config文件中,并在记录警告或更高时成功发送电子邮件(这很好).
<appender name="EmailAppender" type="log4net.Appender.SmtpAppender">
<to value="me@mycompany.com" />
<from value="me@mycompany.com" />
<subject value="test logging message" />
<smtpHost value="smtpserver.mycompany.com" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
但是From值是用我的电子邮件地址硬编码的.
我的应用程序是一个WinForms应用程序,它将部署到用户PC,因此知道哪个用户遇到警告/错误会非常方便.
是否可以设置Log4Net SmtpAppender以使From值使用当前用户的电子邮件地址?
谢谢您的帮助.
我查看了Environment.GetFolderPath方法和System.Environment.SpecialFolder枚举,但是我看不到任何返回Default Users文件夹路径的内容.
有人可以告诉我如何以编程方式获取默认用户文件夹(或甚至更好的默认用户AppData本地文件夹路径,例如c:\ users\Default\AppData\Local),因为我需要将一些文件复制到此文件夹中?
谢谢
我需要对以下Magento文件进行一些更改:
问题是; 我应该编辑这些文件吗?它们是核心文件(如果我升级Magento会被替换)吗?
如果我不应该编辑它们,如果我想更改这些文件的内容,该怎么办?
我正在编写一个 WPF Windows 应用程序,MainWindow 包含一个具有 3 列的 ListView 控件。
以下代码在列标题中居中显示文本(默认情况下)。
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListView>
<ListView.View>
<GridView>
<GridViewColumn Header="Column 1"
Width="200"/>
<GridViewColumn Header="Column 2"
Width="200"/>
<GridViewColumn Header="Column 3"
Width="200"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
我在 WPF ListView_GridView 控件文章中找到了以下如何对齐列标题,该文章显示了如何左对齐列标题文本。我已经粘贴了下面的列:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Left" />
</Style>
</Window.Resources>
<Grid>
<ListView>
<ListView.View>
<GridView>
<GridViewColumn Header="Column 1"
Width="200"/>
<GridViewColumn …Run Code Online (Sandbox Code Playgroud) 在我的 Outlook 2013 C# VSTO 项目中,我注意到 Explorer SelectionChange 事件触发了两次。我认为这一定是由于我的代码中的错误(例如将事件处理程序连接两次),但我找不到任何此类错误。
所以我回到基础并创建了一个小的 VSTO Outlook 2013 Addin 测试项目,同样的事情也发生在那里。Explorer SelectionChange 事件被触发两次。
public partial class ThisAddIn
{
private Explorer _activeExplorer;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
_activeExplorer = Application.Explorers[1];
_activeExplorer.SelectionChange += _activeExplorer_SelectionChange;
}
private void _activeExplorer_SelectionChange()
{
System.Diagnostics.Debug.WriteLine("_activeExplorer_SelectionChange : " + DateTime.Now.ToString());
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
#region VSTO generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with …Run Code Online (Sandbox Code Playgroud) 我正在创建一个需要获取每个邮箱权限的应用程序,但我似乎无法让它工作。我在 VS 对象浏览器中注意到Permissions属性位于Folder类上。
所以我猜我需要获取MailBox对象,然后获取根/默认文件夹,以便我可以获得权限。
这是我到目前为止所做的,但是当它调用时,Folder rootfolder = Folder.Bind(service, sharedMailboxRootFolderId);我收到以下异常:
“客户端访问服务器版本与访问资源的邮箱服务器版本不匹配。”
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
string exchangeServerWebServicesUrl = "https://example.com/EWS/Exchange.asmx";
service.Url = new Uri(exchangeServerWebServicesUrl);
string username = "*********************";
string password = "*********************";
service.UseDefaultCredentials = false;
service.Credentials = new WebCredentials(username, password);
Mailbox sharedMailbox = new Mailbox("shared@example.com");
FolderId sharedMailboxRootFolderId = new FolderId(WellKnownFolderName.Root, sharedMailbox);
Folder rootfolder = Folder.Bind(service, sharedMailboxRootFolderId);
var permissions = rootfolder.Permissions;
Run Code Online (Sandbox Code Playgroud)
我试过传入不同的 ExchangeVersion 枚举值,但它们也不起作用。但是当我尝试获取公共文件夹根文件夹时,传递 ExchangeVersion.Exchange2007_SP1 确实有效。
Folder rootfolder = Folder.Bind(service, WellKnownFolderName.PublicFoldersRoot);
Run Code Online (Sandbox Code Playgroud)
所以问题是如何使用 EWS 获得邮箱权限?
我已将DataGrid添加到 WPF 窗口,并在 XAML 中设置VerticalGridLinesBrush属性以显示相关颜色的垂直网格线。但我不知道如何增加 DataGridRow 中显示的垂直网格线的宽度。
有人可以告诉我如何在 WPF DataGrid 中设置垂直网格线粗细吗?
我们以前使用Exchange 2007和下面的HTML + JavaScript自动登录OWA 2007.
但我们现在已升级到Exchange 2013,脚本不再有效.它显示404 - 未找到文件或目录. 我已经向我们的基础设施部门询问了owaauth.dll文件是否仍在同一个位置,他们告诉我它已移至:
https://" + server + "/exchweb/auth/owaauth.dll
Run Code Online (Sandbox Code Playgroud)
我更改了脚本以使用新路径,但我仍然收到404 - File or directory not found错误.
我的问题是,我需要在脚本中进行哪些更改才能使其与Exchange 2013一起使用?
以下是Exchange 2007脚本详细信息
HOWTO:使用HTML + JavaScript自动登录OWA 2007
<script>
function LoginToOWA (server,domain,username,password) {
var url = "https://" + server + "/exchweb/bin/auth/owaauth.dll";
var p = {destination:'https://' + server + '/exchange',flags:'0',forcedownlevel:'0',trusted:'0',isutf8:'1',username:domain + '\\' + username,password:password};
var myForm = document.createElement("form");
myForm.method="post" ;
myForm.action = url ;
for (var k in p) {
var myInput = document.createElement("input") ; …Run Code Online (Sandbox Code Playgroud) 我正在VS2010中开发VSTO Outlook加载项。在该ThisAddIn_Startup方法(外接程序启动时称为)中,我的代码需要检查Outlook是否在公司网络上运行。如果Outlook未在网络上运行,则大约需要3秒钟才能得到答案。因此,我将代码包装在一个Task中,以使其运行Async以确保它在检查时不会挂起Outlook。
例如
bool onNetwork = false;
Task task = Task.Factory.StartNew(() =>
{
onNetwork = IsConnectedToNetwork();
});
Run Code Online (Sandbox Code Playgroud)
完成检查后,需要加载并显示相关表格。所以我将代码更改为:
Task task = Task.Factory.StartNew(() =>
{
if (IsConnectedToNetwork())
{
OnNetworkForm onNetworkForm = new OnNetworkForm();
onNetworkForm.Show();
}
else
{
OffNetworkForm offNetworkForm = new OffNetworkForm();
offNetworkForm.Show();
}
});
Run Code Online (Sandbox Code Playgroud)
但是需要将窗体加载到UI线程上。否则,InvalidOptionationException当它尝试加载并显示带有消息的表单时,我得到一个提示:
调用线程必须是STA,因为许多UI组件都需要STA。
我的问题是如何使窗体加载到UI线程上?
请注意
我不能使用await,因为那是C#5.0,而VS 2010不支持C#5.0。而且ThisAddin类不是控件,因此没有可用的BeginInvokeor Invoke方法。
c# ×6
html ×2
javascript ×2
vsto ×2
wpf ×2
xaml ×2
.net ×1
bdd ×1
css ×1
css3 ×1
datagrid ×1
fakeiteasy ×1
html5 ×1
listview ×1
log4net ×1
magento ×1
magento-1.7 ×1
outlook ×1
prototypejs ×1
unit-testing ×1
winforms ×1
wpfdatagrid ×1
xunit ×1